|设计模式:观察者模式

|设计模式:观察者模式

文章图片



什么是观察者模式观察者模式(Observer Pattern) , 也叫做发布/订阅模型(Publish/Subscribe) 。 在此种模式中 , 一个目标物件管理所有相依于它的观察者物件 , 并且在它本身的状态改变时主动发出通知 。 这通常透过呼叫各观察者所提供的方法来实现 。 此种模式通常被用在即时事件处理系统 。
一句话归纳解耦观察者与被观察者
示例在我很小的时候 , 我看过很多动画片 , 比如“蓝猫淘气三千问”、“神龙斗士”、“迪迦奥特曼”等等 , 但有一部动画片虽然全程文字少的可怜 , 但还是让我的童年充满乐趣 , 它叫做“猫和老鼠” , 我记得有一个故事讲的是某一个夜晚 , 汤姆找杰瑞玩游戏 , 但杰瑞想尽办法叫醒汤姆的主人 , 主人醒了打了汤姆一顿 , 很搞笑~
在这个故事中 , 汤姆是被观察者 , 而杰瑞和主人是观察者 , 代码如下:

适用性以下场景我建议你考虑使用

  • 一个对象的改变将导致其他一个或多个对象也发生改变 , 而不知道具体有多少对象将发生改变 , 可以降低对象之间的耦合度 。
  • 实现类似广播机制的功能 , 不需要知道具体收听者 , 只需分发广播 , 系统中感兴趣的对象会自动接收该广播 。
  • 需要在系统中创建一个触发链 , 可以使用观察者模式创建一种链式触发机制
局限性以下场景我建议你谨慎使用
  • 目标与观察者之间的依赖关系并没有完全解除 , 而且有可能出现循环引用 。
  • 当观察者对象很多时 , 通知的发布会花费很多时间 , 影响程序的效率 。
END【|设计模式:观察者模式】好兄弟可以点赞并关注我 , 全部都是干货 。