OO原则:
1.封装变化;2.多用组合,少用继承;3.针对接口编程,不针对实现编程;4.为交互对象之间的松耦合设计而努力。
观察者模式:让你的对象知悉情况。该模式是JDK中使用最多的模式之一。有了观察者,你将会消息灵通。(一对多关系、松耦合)
装饰者模式:装饰对象。----(给爱用继承的人一个全新的设计眼界)熟悉了装饰技巧,能够在不修改任何底层类代码的基础上,给你的或别人的对象赋予新的职责。
运行时的扩展(--组合)远比编译时期的继承威力大。将对象包装起来,赋予它们新的职责。
工厂模式:烘烤OO的精华,准备好开始烘烤某些松耦合的OO设计。除了new操作符之外,还有更多制造对象的方法。该模式会让你了解到实例化这个活动不应该总是公开地进行,也会认识到初始化经常造成“耦合”的问题。
单件模式:独一无二的对象。用来创建独一无二,只能有一个实例的对象的入场券。单件模式---确保一个类只有一个实例,并提供全局访问点。
命令模式:封装调用。
适配器模式与外观模式:随遇而安。以不同的目的,包装某些对象,让它们的接口看起来不像自己而像是别的东西。
模板方法模式:封装算法。
迭代器与组合模式:管理良好的集合。如何能让客户遍历你的对象而又无法窥视你存储对象的方式,如何创建一些对象超集合(super collection),能够一口气就跳过某些让人望而生畏的数据结构,还将学到一些关于对象职责的知识。
状态模式:事物的状态。策略模式和状态模式是双胞胎。策略模式是围绕可以互换的算法来创建成功业务的。状态模式走的是更崇高的路,它通过改变对象内部的状态来帮助对象控制自己的行为。
代理模式:控制对象访问。
复合模式:模式中的模式。模式之间携手合作。
并不是所有的子类(鸭子)都具有飞行和呱呱叫的行为,所以继承并不是适当的解决方式。而通过接口来解决一部分问题(如Flayable可以解决不会再有会飞的橡皮鸭问题),但是却造成代码无法复用,甚至,在会飞的鸭子汇总,飞行的动作可能还有多种变化。解决方法:采用良好的OO软件设计原则。
设计原则:
1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。
2.针对接口编程,而不是针对实现编程。
3.所用组合,少用继承。