一、过滤器模式
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。
mongo 的查询接口有很多方法,例如 and,or,实际上就是串在一起。
二、组合模式
树枝内部组合该接口,并且含有内部属性 List,里面放 Component。叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。
public class Employee {
private String name;
private String dept;
private int salary;
private List<Employee> subordinates;
三、装饰器模式
类似适配器,代理,桥接
java 的 IO 包就是典型代表
四、外观模式
为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。不符合开放封闭原则,如果要改东西很麻烦。
五、桥接模式
抽象类依赖实现类。
六、责任链模式
拦截器模式:以 Logger 为例,
public abstract class AbstractLogger {
protected AbstractLogger nextLogger;
}
七、观察者模式
微博动态可以设计成观察者模式,每个人记录自己的观察者,发送的时候通知。
八、策略模式
诸葛亮的锦囊妙计,每一个锦囊就是一个策略。