22.观察者模式(Observer)- 对象行为型模式

前言:

        在现实世界中,许多对象并不是独立存在的,其中的一个对象的行为发生变化可能会导致一个或者多个其他对象的行为发生变化。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。

        在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模型中的事件源与事件处理者。所有这些,如果用观察者模式来实现就非常方便。

定义:

        指多个对象之间存在的一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都得到通知并自动刷新。这种模式又被称作 发布-订阅模式模型-视图模式

模式的结构和实现

         实现观察者模式时要注意具体目标对象和具体观察者对象之间不能直接调用。否则,将使两者之间紧密耦合起来,违背了面向对象的设计原则

主要角色:

  • 抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加,删除观察者对象的方法,以及通知所有观察者的抽象方
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值