软件设计中,首先要避免的是逻辑依赖循环。在软件逻辑设计中,一般希望设计的软件是金字塔形状的,底层的类是不会依赖上层类的,或者说底层类看不到上层类的存在。就像通讯协议中的分层结构一样,每一层级,对应一个类,则下面的类收到上层类的支配和管理。这样的逻辑依赖就是明确和清晰的,并且在必要的时候,可以对一个层次上的类实现进行修改,在不改变接口的情况下。