一。设计原则:
1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
另一种思考方式:把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。
另一种思考方式:找出程序中会变化的方面,然后将其和固定不变的方面相分离。
2.针对接口编程,而不是针对实现编程。
我的思考方式:面向接口,则可以把不同的动作统一成一样的调用方式,达到访问简单,其实内部复杂。
3.多用组合,少用继承。
注解:组合;就是当你将两个类结合起来使用,就是组合。
瞎掰:设计大师关心的是建立弹性的设计,可以维护,可以应付变化。
4.为了交互对象之间的松耦合设计而努力。
路过:尽管布告板的类都不一样,但是他们都应该实现相同的接口。
瞎掰:利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态的进行扩展。(组合与委托)
5.类应该对扩展开放,对修改关闭。(弹性强)
我路过:因为调料是经常改变的,所以应把它给抽取出来。
6.要依赖抽象,不要依赖具体类。
我路过:实实在在的OO编程:小东西也是个类,是人是鬼都是个类。算你狠!!!
路过:空对象本身也是个设计模式。
7.最少知识原则:只和你的密友谈话。
路过:将共同的部分抽离出来,放进一个基类。
8.别找我,我会找你。
9.一个类应该只有一个引起变化的原因。(尽量让每个类保持单一责任)
另一种思考方式:类应该只有一个改变的理由。
设计模式应该自然而然的使用,不应该刻意的去使用。