diff --git a/blogs/DesignMode/口水话.md b/blogs/DesignMode/口水话.md index 4ba76ee..799ea2f 100644 --- a/blogs/DesignMode/口水话.md +++ b/blogs/DesignMode/口水话.md @@ -96,6 +96,8 @@ 生产者消费者模型如消息队列,一般都可以看成是观察者模式。在 Android 中,最常见的观察者模式应用就是广播了。 +在 Java 中的 util 包下也有 Observable 和 Observer,不过这个 Observable 是一个类而不是一个接口,其次它的所有方法比如 addObserver、deleteObserver、setChanged、notifyObservers 等都是加锁的,notifyObservers 由于加锁可能存在两个问题,新添加的观察者没有收到通知和注销的观察者依旧收到了通知。 + #### 责任链模式 责任链模式是指将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。在 GoF 的定义中,一旦某个处理器能处理这个请求,就不会继续将请求传递给后续的处理器了。Android 中事件分发机制的用的就是这种形式。当然,也存在请求不会被终止传递的场景,而是所有处理器都会处理一遍,OkHttp 的拦截器链使用的就是这种形式。