Head First设计模式

一、策略模式
1. 模式:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 。
2. 原则:
①找出程序中会变化的方面,然后将其和固定不变的方面相分离。
②针对接口编程,不针对实现编程。
③多用组合,少用继承。
3. 链接:策略模式

二、观察者模式
1. 模式:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新。
2. 原则:
④为交互对象之间的松耦合设计而努力。

三、装饰者模式
1. 模式:动态地将责任附加到对象上。想要拓展功能,装饰者提供有别于继承的另一种选择。
2. 原则:
⑤开放-关闭原则:类应该对扩展开放,对修改关闭。

四、工厂模式: