|设计模式:观察者模式
文章图片
什么是观察者模式观察者模式(Observer Pattern) , 也叫做发布/订阅模型(Publish/Subscribe) 。 在此种模式中 , 一个目标物件管理所有相依于它的观察者物件 , 并且在它本身的状态改变时主动发出通知 。 这通常透过呼叫各观察者所提供的方法来实现 。 此种模式通常被用在即时事件处理系统 。
一句话归纳解耦观察者与被观察者
示例在我很小的时候 , 我看过很多动画片 , 比如“蓝猫淘气三千问”、“神龙斗士”、“迪迦奥特曼”等等 , 但有一部动画片虽然全程文字少的可怜 , 但还是让我的童年充满乐趣 , 它叫做“猫和老鼠” , 我记得有一个故事讲的是某一个夜晚 , 汤姆找杰瑞玩游戏 , 但杰瑞想尽办法叫醒汤姆的主人 , 主人醒了打了汤姆一顿 , 很搞笑~
在这个故事中 , 汤姆是被观察者 , 而杰瑞和主人是观察者 , 代码如下:
适用性以下场景我建议你考虑使用
- 一个对象的改变将导致其他一个或多个对象也发生改变 , 而不知道具体有多少对象将发生改变 , 可以降低对象之间的耦合度 。
- 实现类似广播机制的功能 , 不需要知道具体收听者 , 只需分发广播 , 系统中感兴趣的对象会自动接收该广播 。
- 需要在系统中创建一个触发链 , 可以使用观察者模式创建一种链式触发机制
- 目标与观察者之间的依赖关系并没有完全解除 , 而且有可能出现循环引用 。
- 当观察者对象很多时 , 通知的发布会花费很多时间 , 影响程序的效率 。
- 本文转自:上观新闻“炙烤”模式下|高温天,这些消暑“神器”热卖
- 小米科技|直降2300元!小米顶尖旗舰开启“半价清仓”模式,闭眼入都行!
- 阿里巴巴|淘宝短视频带货模式,要怎么操作?获取流量是通过什么方式?
- 芯片|日本芯片大佬被美韩逼到绝境,72岁高龄加入中国开始复仇模式
- 阿里巴巴|阿里招商团长的模式和干货分享!
- vivo x80|第二代双芯旗舰vivo X80 Pro上手,堆料模式果然圈粉
- 软件|刷视频也能点餐了?抖音上线即时外卖服务:模式有点不一样!
- VR|“电商时代”,电子商务的特点是什么?交易模式有哪些?
- 大家好|淘宝短视频带货模式,要怎么操作?获取流量是通过什么方式?
- 苹果|悬赏200万美元!苹果鼓励破解iOS16锁定模式