面向对象设计的11原则-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

面向对象设计的11原则

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

  头五项原则是关于类设计的,它们是:

  &#9670; SRP,单一职责原则,一个类应该有且只有一个改变的理由。
&#9670; OCP,开放封闭原则,你应该能够不用修改原有类就能扩展一个类的行为。
&#9670; LSP,Liskov替换原则,派生类要与其基类自相容。
&#9670; DIP,依赖倒置原则,依赖于抽象而不是实现。
&#9670; ISP,接口隔离原则,客户只要关注它们所需的接口。

  另外的六项是关于包的设计原则。在本文中,包是指一个二进制的可发布文件,比如.jar文件、或dll文件,而不是Java包或是C++的命名空间(译注3)。

  头三项包原则是关于包内聚性的,它们会告诉我们该把什么划分到包中:

  &#9670; REP,重用发布等价原则,重用的粒度就是发布的粒度。
&#9670; CCP,共同封闭原则,包中的所有类对于同一类性质的变化应该是共同封闭的。 
&#9670; CRP,共同重用原则,一个包中的所有类应该是共同重用的。

  最后的三项原则是关于包之间的耦合性原则的,并且论述了评价系统中包结构优良与否的评判标准。

  &#9670; ADP,无环依赖原则,在包的依赖关系图中不允许存在环。
&#9670; SDP,稳定依赖原则,朝着稳定的方向进行依赖。
&#9670; SAP,稳定抽象原则,包的抽象程度应该和其稳定程度一致

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2006/11/22/2912468.html  ,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: