观察者模式——解耦利器
来源:互联网 发布:海尔阿里云电视刷系统 编辑:程序博客网 时间:2024/06/05 12:05
观察者模式是一个使用率非常高的模式,常用于 订阅——发布系统。
其 最重要的作用就是 解耦,将观察者和被观察者解耦,让他们之间的依赖性更小。具体应用也就是说 让 UI层 和具体的业务逻辑解耦。
看计算机书籍的定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于他的对象都会得到通知和更新。
使用场所:1,事件多集触发 ;2 跨系统的消息交换场景,例如消息队列,事件总线的处理机制等。
大致角色分类:
被观察者(Observable):抽象的角色,把所有观察者对象的引用保存在一个集合里,数量不定,对外提供一个接口,方便进行添加和删除观察者对象。
具体被观察者(ConcerteObservable):也就是我们的具体事件,当我们的这个事件内部状态发生改变时候,给所有的注册过的观察者发出通知.
观察者(Observer): 抽象角色, 观察者的抽象类,对外提供一个接口,方便得到通知时更新自己。
具体观察者(ConcereteObserver): 具体的观察者, 观察者的接口更新实例类, 当接到通知时候 及时更新自己。
代码举例:超市——购物者
观察者:购物者
被观察者:超市
具体实现
输出内容:
这个观察者的Demo就完成了。
Observer 和Observable 是jdk的内置类型,观察者这个模式很重要。具体本人就不再做过多的解释。
小结一下:
观察者模式主要作用就是对象的解耦,将观察者和被观察者完全分离。只是依赖于Observer 和Observable 的抽象。
优点: Observer 和Observable 之间是抽象耦合, 应对业务变化。 增强的系统的灵活性,和扩展性。
缺点: 运行效率问题,一个被观察者,多个观察者,开发和调试比较麻烦, java消息通知是默认顺序执行的, 一个观察者卡顿了,整体效率会下降,不过我们可以考虑 异步方式来解决。
观察者模式——在Android中的应用 ,有时间在告诉大家啦。
- 观察者模式——解耦利器
- 设计模式之观察者模式(解决、解耦的钥匙——观察者模式)
- 设计模式—观察者
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 设计模式—观察者模式
- 观察者模式——解耦的钥匙
- 观察者模式——解决、解耦的钥匙
- 观察者模式用于解耦
- 设计模式——观察者
- 观察者模式——Observer
- 观察者模式——Observer
- 大连首闻grid二次开发增强文档
- HDU - 1032 The 3n + 1 problem
- 轮播图片
- 58.4Sum-四数之和(中等题)
- 深度学习知识库精华+图谱一览
- 观察者模式——解耦利器
- android studio 分享到github 以及 出错
- Leetcode 94 Binary Tree Inorder Traversal
- Codeforcs--486C------Palindrome Transformation思维题
- 特殊的日子
- fzu2150 Fire Game bfs
- 下一秒的日期与时间
- hdu 4463 Outlets【最小生成树】水题
- Java Map 按Key排序和按Value排序