OO(面向对象)的特性: 封装、抽象、继承、多态
一、策略模式
原则一 封装变化:找到应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
原则二:针对接口编程,而不是针对实现编程。(“针对接口编程”真正的意思是“针对超类型(supertype)编程”)
原则三:多用组合(composition,“有一个(HAS-A)”的关系),少用继承。
二、观察者模式
原则四: 为了交互对象之间的松耦合设计二努力。
三、装饰者模式
原则五 开闭原则:类应该对拓展开放,对修改关闭。(允许类容器扩展,在不修改现有代码的情况下,就可搭配新的行为。)
四、工厂模式
原则六 依赖倒置原则: 要依赖抽象,不要依赖具体类。
这个原则说明了:不能让高层组件依赖得层组件,而且,不管高层和底层组件,“两者”都应该依赖于抽象。
五、外观模式
原则七 最少知识原则:只和你的密友谈话。
这个原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。
六、模板方法模式
原则八 好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你。
好莱坞原则告诉我们,将决策权放在高层模块中,以便决定如何以及何时调用底层模块。
七、迭代器模式
原则九 单一责任: 一个类应该只有一个引起变化的原因。
这个原则告诉我们,尽量让每个类保持单一责任。
类的每个责任都有改变的潜在区域。超过一个责任,意味着超过一个改变区域。
内聚(cohesion),这个术语是用来衡量一个类或模块紧密地达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚;反之,当被设计成支持一组不相关的功能时,我们说它具有低内聚。
遵守这个原则的类容易具有很高的凝聚力。