面向对象设计的11条原则(转)
依赖管理是我们每个人都要面对的问题,每当我们在屏幕面前打开那些彼此纠结又令人作呕的代码,我们就会遭受不良的依赖管理所带来的恶果。不良的依赖管理导致代码难以改变,易被破坏,而且不可重用。实际上,在Bob大叔的著作《敏捷软件开发 原则、模式与实践》一书以及其相关书籍都谈论过很多不同的设计坏味道,而这些都与依赖管理有关。从另一方面来说,如果依赖经过了良性的管理,代码就可以保持灵活性、健壮性和重用性。所以依赖管理和这些相关原则是程序员们渴求的让软件保持优良架构的基石。
头五类设计是关于类的设计,介绍如下:
◆ SRP(Single Responsibility Principle) 单一职责原则:强调一个类只且只有一个被修改的理由;
◆ OCP(Open-Close Principle) 开放封闭原则:确保能够不修改原有的类就能扩展功能
◆ LSP(Liskov Substitution Principle) Liskov替换原则:派生类要与其基类自相容
◆ DIP(Dependency Inversion Principle) 依赖倒置原则:依赖于抽象而不是实现
◆ ISP(Interface Split Principle) 接口隔离原则:客户只需要关注他们要调用的接口
另六个原则是关于程序集的设计,介绍如下:
头三个原则包含程序集的内聚性设计,它会告诉我们该把什么划分到程序集中:
◆ REP(The Release Reuse Equivalency Principle)重用发布等价原则:重用的粒度就是发布的粒度。
◆ CCP(The Common Closure Principle)共同封闭原则:程序集中的类对同一种类型的变化应该是共同封闭的
◆ CRP(Composite Reuse Principle)复合重用原则:一个程序集中的类应该是共同重用的
最后三项包含程序集中耦合性原则,并且论述了评判系统中程序集结构优良与否的评价标准
◆ ADP(Acyclic Dependencies Principle)无环依赖原则:在程序集的依赖关系中不允许存在环
◆ SDP(Stable Dependencies Principle)稳定依赖原则:朝着稳定的方向进行依赖
◆ SAP(Stable Abstractions Principle)稳定抽象原则:程序集的抽象程序应该与其稳定程序一致
看来还要加强学习啊@@@