Java观察者模式案例简析

在java内部已有内置的观察者模式,如类 java.util.Observable和类java.util.Observer,即是被观察者和观察者。

在 java.util.Observable 中,存储观察者对象的容器是Vector,此容器支持动态扩展和同步性,用法与ArrayList类似

Observable内部方法如下所示:

观察者模式的内在原理:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

小编是一个有着5年工作经验的java程序员,对于java,自己有做资料的整合,一个完整学习java的路线,学习资料和工具,相信这里有很多学习java的小伙伴,我创立了一个2000人学习扣群,479121291。每晚都有java的直播课程。无论是初级还是进阶的小伙伴小编我都欢迎!

即:通过将一组对象实例存储在一个数组容器中,在某一时刻遍历数组并调用数组内的对象方法完成更新。

被观察者Observable内部的核心方法

加同步锁synchronized可避免线程并发问题,设置changed状态可监听更新。for循环遍历执行观察者Observer内部的方法update()。

被观察者继承Observable类,动态发布消息通知观察者更新。如:

观察者实现了Observer接口,支持扩展。如:

外部测试如下

打印如下:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在java内部已有内置的观察者模式,如类 java.util.Observable和类java.util.Obse...
    正规程序员阅读 2,609评论 4 54
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,795评论 0 14
  • 我们每个人都不停的努力,生活的方向总是在变化。 在每个人的一生中,其实都是大同小异。生活中你遇到的,她也一定会遇到...
    亲爱的紫罗兰阅读 220评论 0 0
  • 昨天接儿子,王艺霖过来跟我说盛子默要给他一个电话手表,这手表还没到货,儿子已经答应给小朋友玩了,真不知道这手表该不...
    szm123阅读 168评论 0 0
  • 总是可以在朋友圈看到一句话:“身体和灵魂,总有一个要在路上。”貌似越来越多的人喜欢上了旅行。 然而去年的西塘之旅,...
    木依沙阅读 520评论 0 2