单件:
确保一个类只有一个实例,并提供一个全局的访问点。
构造函数声明为私有,通过一个静态方法获取实例。需要防止多线程同时调用而创建多个实例。
不符合单一原则
外观模式:
提供一个统一的借口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。
其意图是简化接口,符合最少知识原则,将组件解耦。
适配器模式:
将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
其意图是将接口转换。
观察者模式:
定义了对象间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
观察者和可观察者之间用松耦合方式结合,可观察者不会知道观察者的细节,只知道观察者实现了观察者接口。
策略模式:
定义算法族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。