0.参考书籍——《HeadFirst 设计模式》
1.找出应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。P9
会变化的部分,修改成开放接口,对修改进行开放。
2.针对接口编程,而不是针对实现编程。P11
利用的是面向对象语言的多态特性,声明类型时用的父类,具体实例用的是子类。接口在父类中进行生命,具体实现在子类中进行。重点在于利用多态特性。
3.多用组合,少用继承。P23
3.1 继承中,子类依赖父类, 一旦父类发生改变,子类不得不跟着改变。
3.2 组合更加灵活,测试也比较容易。策略模式是使用组合的一个体现。
3.3 继承意味着子类拥有父类所有的方法,如果子类只需要部分方法或者成员时,会造成冗余。
4.为了交互对象之间的松耦合设计而努力。P53
松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低。
5.类应该对外扩展开放,对修改关闭。(开放-关闭原则)P86
我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。这样的设计具有弹性,可以接受新的功能来应对改变的需求。
6.要依赖对象,不要依赖具体类。P139
不能让高层组件依赖底层组件。不管高层
7.最少知识原则。P265
要减少对象之间的耦合。
8.别调用我们,我们会调用你。P296
避免底层组件和高层组件有环形依赖。
9.单一职责一个类应该只有一个引起变化的原因。P339
每个类都有改变的潜在区域,超过一个责任,意味着超过一个改变的区域。
网友评论