前言
闲言少叙,直奔真题。观察者模式是定义了一种一对多的依赖关系,让过个观察者同时监听某一个主题对象。这个主题对象在发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
介绍
观察者模式大致可以分为四类角色:分别为Subject(目标)、 ConcreteSubject(具体目标)、Observer(观察者)、ConcreteObserver(具体观察者)
观察者模式在一个对象的状态发生改变的时候,所有的依赖对象都将得到通知,【地震到来之前有地震波,动物们能感受到这种波,但是人们感受不到,但是在地震发生的时候都会感受的地震的发生】
实例介绍
优缺点
优点:
(1)观察者模式实现类表示层(观察者)和数据逻辑层(被观察者)的分离,定义了稳定的消息传递机制,每个具体观察者产生自己的行为特点。
(2)被观察者和观察者之间建立一个抽象耦合,被观察者只知道将通知类表中的观察者通知到位,且每一个观察者都继承抽象观察者。
(3)增加新的具体观察者无须修改原有系统代码,符合开闭原则。
缺点:
(1)观察者无法知道被观察的目标是如何改变状态的。
(2)一个被观察者对应多个观察者,观察者接收到通知花费时间长。