1策略模式
定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则:
(1)封装变化
(2)多用组合,少用继承
(3)针对接口编程,不针对实现编程
2观察者模式
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
3装饰者模式
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承者更有弹性的替代方案。
(1)装饰者和被装饰对象有相同的超类型
(2)装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的
设计原则:类应该对扩展开放,对修改关闭。(允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为)
4工厂模式
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
5单例模式
确保一个类只有一个实例,并提供一个全局访问点
6命令模式
将“请求”封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作。
7适配器与外观模式
8模板方法模式
9迭代器与组合模式
10状态模式
11代理模式
12复合模式