当前位置: 首页 > article >正文

设计模式小结一观察者(Observer)模式

先上结论:

        这是一个开发者经常用到但你可能没有意识到的设计模式,当前Android客户端开发经常用到的几大流行框架:LiveData、RxJava、EventBus等的核心都是采用此种设计模式思想。讲到这里,还不赶紧研究下这几个开源框架的源码,不然面试问的深入一点你就露馅了!

开干!

简单总结下观察者模式

出版者+订阅者=观察者模式;定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖都会收到通知并自动更新

java SDK中就用现成可用的观察者模式的代码,但是利用java api中的Observable和Observer存在以下缺陷:

1)观察者被注册的顺序与其被通知的顺序并不一致

2)Observable是个类而非接口,不利于拓展,违反设计原则

android中用的最多的观察者模式的地方就是各种事件监听

上理论:

一、定义与原理

观察者模式又称为模型-视图(Model-View)模式、源-收听者(Listener)模式或从属者模式。在此种模式中,一个目标对象(被观察者)管理所有相依于它的观察者对象,并在其状态改变时主动发出通知。这通常通过调用各观察者所提供的方法来实现。

二、角色与职责

  1. 抽象主题(Subject):把所有观察者对象的引用保存到一个集合里,每个主题都可以有任何数量的观察者。它提供一个接口,可以增加和删除观察者对象。
  2. 具体主题ÿ

http://www.kler.cn/a/385890.html

相关文章:

  • 正则表达式常用字符
  • 详解map与multimap容器
  • LogViewer NLog, Log4Net, Log4j 文本日志可视化
  • 51c大模型~合集42
  • Photoshop(PS)——人像磨皮
  • 删库跑路,启动!
  • 如何在微服务架构中优化微信 Access Token 管理:解决频率限制与过期问题的最佳实践
  • 哈夫曼树(HuffmanTree)
  • c++:模板和STL
  • 自动驾驶---“火热的”时空联合规划
  • Unity3D 包体裁剪与优化详解
  • Qt编译lua库并调用
  • Qt | http获取网页文件(小项目)
  • python爬虫自动库DrissionPage保存网页快照mhtml/pdf/全局截图/打印机另存pdf
  • leetcode20.括号匹配
  • 以梧桐数据库为例讲解如何计算用户连续登录比率
  • 站长用站群安全特性怎么样
  • Python 数据可视化详解教程
  • Java8->Java19的初步探索
  • 反射型XSS--理论
  • AI时代IDE解析
  • 云服务器Linux部署war、jar包,并在nginx配置域名
  • express 使用JWT认证
  • 低空经济之星eVTOL研发技术详解
  • 越权访问漏洞
  • 基于MFC实现的赛车游戏