访问者模式:
主要将数据结构与数据操作分离,稳定的数据结构和易变的操作耦合问题,
稳定的数据结构和易变的操作耦合问题
实例:用于报表、UI、拦截器与过滤器;
观察者模式:
- 对象间存在一对多关系时,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新;
- 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知;
- 在抽象类里有一个 ArrayList 存放观察者们;
- 观察者和被观察者是抽象耦合的,建立一套触发机制
Subject(被观察对象)、Observer(观察者)
责任链模式:
- 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
- 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。
- Handler 里面聚合它自己,在 HandlerRequest 里判断是否合适,如果没达到条件则向下传递,向谁传递之前 set 进去
- 实例:JS 中的事件冒泡、日志级别控制、过滤器;