DIP 依赖倒置原则- -| 回首页 | 2006年索引 | - -已锁定

如何进行package的设计

关键词package                                          

我们设计在小的应用程序的时候, 设计出来自己的类并不需要太多关注分包的问题, 然而当设计大的应用程序的时候就必须要分包了。

然而类与类之间有的时候有依赖关系, 这种依赖关系甚至可能是跨越包延伸到其他的包, 因此包与包也是有依赖关系的。怎么样对包进行管理?

如下的问题需要进行考虑:
1)在向包中分配类的时候应该遵照什么原则?
2)应该使用什么设计原则来管理包之间的关系?
3)包的设计原则应该先与类(自上而下)?还是类的设计先于包?(自下而上)
4)如何实际表现出包?在C++中如何表现?在java中如何表现?
5)包创建好了之后, 将它们用于何种目的?

============================================================

自下而上的包设计的几个原则:
包的内聚性原则:
{
1)共同重用原则。

     对于使用者来说, 当依赖于一个包的时候, 应该是依赖于一个包中全部的类, 而不是仅仅某一个类。换句话说, 包中的类应该是不可分开的。否则的话,包将直接影响使用者的不必要的重新发布,编译。(这个原则能够避免报分得过于粗。)

2)共同封闭原则
  
包中的类对于同一类性质的变化应该是共同封闭的。一个变化如果如果对一个包产生影响,那么他对包中的类都产生影响,而对于其他的包不产生影响。(这个原则可以避免包分得过细!)
}

包的依赖性原则:
{
      1)无环依赖原则。在包的依赖图中不允许存在环。
      “有这种工作经历么? 工作一整天终于完成某个功能后回家,第二天清早去上班却发现那项功能却不能工作,原因是什么呢? 因为有人走得比你更晚,并且更改了你所依赖的那些东西。”---晨后综合症。
      2)稳定依赖原则。
       朝着稳定的方向进行依赖。
       稳定性?
       如果改变一个事物需要很大的力气,也就是难以改变, 那么它就是稳定的。
       使一个类稳定的方法是让很多的类依赖于它,这样它就具有拒绝变化的n个理由,就是稳定的。相反,如果一个类没有任何类依赖于自己,反而依赖于其他的类,那么就是不稳定的。  
      3)稳定抽象原则。
       抽象类通常是很灵活的, 能够适应OCP的需求。  包的抽象程度应该跟它的稳定性一致。
       即:越是稳定的包,其中的类应该是最抽象的。
}
摘自《敏捷软件开发》。

【作者: HairRoot】【访问统计:】【2006年02月21日 星期二 15:06】【 加入博采】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4503422

博客手拉手

回复

验证码:   
评论内容: