欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

观察者模式——解耦利器

发布时间:2024/9/30 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 观察者模式——解耦利器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

观察者模式是一个使用率非常高的模式,常用于 订阅——发布系统。
其 最重要的作用就是 解耦,将观察者和被观察者解耦,让他们之间的依赖性更小。具体应用也就是说 让 UI层 和具体的业务逻辑解耦。

看计算机书籍的定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于他的对象都会得到通知和更新。

使用场所:1,事件多集触发 ;2 跨系统的消息交换场景,例如消息队列,事件总线的处理机制等。

大致角色分类:

被观察者(Observable):抽象的角色,把所有观察者对象的引用保存在一个集合里,数量不定,对外提供一个接口,方便进行添加和删除观察者对象。

具体被观察者(ConcerteObservable):也就是我们的具体事件,当我们的这个事件内部状态发生改变时候,给所有的注册过的观察者发出通知.

观察者(Observer): 抽象角色, 观察者的抽象类,对外提供一个接口,方便得到通知时更新自己。

具体观察者(ConcereteObserver): 具体的观察者, 观察者的接口更新实例类, 当接到通知时候 及时更新自己。

代码举例:超市——购物者
观察者:购物者

被观察者:超市

具体实现

  • 输出内容:

    这个观察者的Demo就完成了。

    Observer 和Observable 是jdk的内置类型,观察者这个模式很重要。具体本人就不再做过多的解释。

    小结一下:
    观察者模式主要作用就是对象的解耦,将观察者和被观察者完全分离。只是依赖于Observer 和Observable 的抽象。

    优点: Observer 和Observable 之间是抽象耦合, 应对业务变化。 增强的系统的灵活性,和扩展性。
    缺点: 运行效率问题,一个被观察者,多个观察者,开发和调试比较麻烦, java消息通知是默认顺序执行的, 一个观察者卡顿了,整体效率会下降,不过我们可以考虑 异步方式来解决。

    观察者模式——在Android中的应用 ,有时间在告诉大家啦。

    与50位技术专家面对面20年技术见证,附赠技术全景图

    总结

    以上是生活随笔为你收集整理的观察者模式——解耦利器的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。