# ObserverPattern **Repository Path**: pu-bingsheng/test ## Basic Information - **Project Name**: ObserverPattern - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-14 - **Last Updated**: 2022-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Pattern ## 1.含义 对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 (即Publisher的状态改变后,Subscribers的状态被通知更新) ## 2.原理 “观察目标” 引用着 “观察者”,当发送变化时,通过调用 “观察者” 的方法通知 “观察者”。 ## 3.模式结构 ![输入图片说明](ObeserverUML.png) **分析:** **Subject**:封装观察者的引用与通知观察者函数。 **ConcreteSubject**:被观察目标具体实现。 **Observer**:定义观察者抽象类。 **ConcreteObserver**:观察者具体实现。 ## 4.目的 为交互对象之间的低耦合设计而努力。松耦合设计更有弹性,更能应付变化 ## 5.优点 1.观察者模式可以实现表示层和数据逻辑层的分离 2.观察者和被观察者是抽象耦合的 ## 6.缺点 如果一个观察目标对象有很多直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。