- 观察者模式:
当广播站点对象和观察者对象间存在一对多关系(单个广播站点对象绑定多个观察者对象)时使用观察者模式(行为型模式)(Observer Pattern)。当一个广播站点对象被修改(发送信息)时,则会自动通知所有相关的听众观察者对象。 - 观察者模式使用:
一个对象(广播站点对象)的状态发生改变,所有相关的依赖对象(观察者对象)都将得到通知并响应,进行广播通知。 - 观察者模式优点:
听众观察者和被观察者广播站点对象是抽象耦合的。建立一套触发通知机制。 - 观察者模式缺点:
如某个被观察者广播站点对象有很多直接和间接的观察者的话,那么将所有的观察者都通知到(底层通知指令循环调用)会花费很多时间。如果在观察者和观察目标(广播站点)间有循环依赖的话,观察目标(广播站点)会触发它们之间的循环依赖进行循环调用,可能导致系统崩溃。观察者模式没有相应的机制让听众观察者知道所观察的目标对象是怎么发生变化的而仅仅只是知道观察目标发生了变化。
观察者模式Demo