Head First设计模式
设计原则
1. 找出应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码写在一起
2.针对接口编程,而不是针对实现编程
3. 多使用组合,少使用继承
4.为了交互对象之间的松耦合设计而努力
5.类应该对扩展开放,对修改关闭
6.依赖倒置原则(要依赖抽象,不要依赖具体类)
策略模式
定义
策略模式 定义了 算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
观察者模式
定义
观察者模式 定义了对象之间的一对多依赖,这样依赖,当一个对象改变状态时, 它的所有 依赖者都会收到通知并自动更新
Java内置的观察者模式
可观察者: java.util.Observable
观察者: java.util.Observer
装饰者模式
装饰着模式 : 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替换方式
- 装饰者和被装饰者对象有相同的超类型;
- 可以用一个或多个装饰者包装一个对象;
- 装饰者可以在所委托的被装饰者之前或之后添加自己的行为;达到特定的目的;
- 对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用喜欢的装饰着来装饰对象
工厂模式
简单工厂
工厂方法模式
抽象工厂模式
抽象工厂模式 提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类