设计原则:
1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。
2.针对接口编程,而不是针对实现编程。
3.多用组合,少用继承。使用组合建立系统具有很大的弹性,不仅可以将算法族封装成类,更可以“在运行时动态地改变行为”,只要组合的行为对象符合正确的接口标准即可。
4.为了交互对象之间的松耦合设计而努力。松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化是因为对象之间的互相以来降到了最低。
5.类应该对扩展开放,对修改关闭。我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。如能实现这样的目标,有什么好处呢?这样的设计具有弹性可以应对改变,可以接受新的功能来应对改变的需求。
6.依赖倒置原则:要依赖抽象,不要依赖具体类。这个原则说明了,不能让高层组件依赖低层组件,而且,不管高层或底层组件,“两者”都应该依赖于抽象。
遵循依赖倒置原则指导方针: 1.变量不可以持有具体的引用。(如果使用new,就会持有具体类的引用,你可以改用工厂来避开这样的做法)
2.不要让类派生自具体类(如果派生自具体类,你就会依赖具体类,请派生自一个抽象(接口或抽象类))
3.不要覆盖基类中已实现的方法。(如果覆盖基类实现的方法,那么你的基类就不是一个真正适合被继承的抽象,基类中已实现的方法,应该有所有的子类共享)
7.最少知识原则(德墨忒耳法则【Law of Demeter】):只和你的密友谈话。
8.好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你。
9.类应该只有一个改变的理由。
网友评论