资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

设计模式之观察者模式-Java内置观察者及总结-创新互联

设计模式之观察者模式-Java内置观察者及总结

成都创新互联公司服务项目包括雨花台网站建设、雨花台网站制作、雨花台网页制作以及雨花台网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,雨花台网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到雨花台省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

观察者下篇

在上一篇文章中,我们通过污污弹公司司小司做气象站项目学习了观察者模式怎么使用。在本篇中,我们对观察者模式进行总结及关键点,还有一个就是Java中内置的观察者模式。

本文出处:凯哥Java(kagejava)

一:Java内置的观察者

我们将使用Java内置的观察者将气象站项目重新写一次。

内置观察者的区别:

Subject对象:

1:subject名称变了,变成了Observable了;功能不变,还是注册、移除、通知观察者三个功能;

2:observable是对象而非接口了,所以在使用的时候,不能在使用实现了,需要使用继承关系。好处就是:因为是继承关系,所以在注册观察者、移除观察者、通知观察者这三个方法具体实现我们可以不用写了。

Observer对象:

observer对象名字没有变化,功能还是update,没有变化。 而且还是接口对象。

那么为什么observer不用类而用接口呢?因为我们知道,我们的observer是不同的项目,需求不一定的。所以,只能使用接口来定义了。具体实现,各个项目根据自己项目功能自行实现即可。

不同:update时候,可以选择将信息主动推送给观察者还是让观察者自己来拉去。在Java内置的观察者模式中,推/拉都可以。

使用Java内置观察者实现的代码:

项目结构:

设计模式之观察者模式-Java内置观察者及总结

测试类:JavaObserverWeatherMainTest

需要说明的:

public class CurrentConditionJava implements Observer {}

实现的Observer对象所在位置:import java.util.Observer;

public class WeaterDataJava extends Observable {}

继承的Observerable对象所在位置:import java.util.Observable;

运行结果:

设计模式之观察者模式-Java内置观察者及总结

达到我们预期的效果。说明,使用Java内置的观察者模式成功!

使用Java内置的观察者需要唯一注意的地方:observerable的继承者在datachange时候,需要先setChanged()。如下图:

设计模式之观察者模式-Java内置观察者及总结

这一点一定要注意。

二:观察者模式总结及关键点

百科上对观察者模式基本介绍:

设计模式之观察者模式-Java内置观察者及总结

实现方式:

设计模式之观察者模式-Java内置观察者及总结

观察者模式使用场景:

设计模式之观察者模式-Java内置观察者及总结

观察者模式四个角色:

设计模式之观察者模式-Java内置观察者及总结

抽象主题角色(subject)、主题角色具体实现类

抽象观察者角色(observer)、观察者具体实现类

观察者模式的优缺点:

设计模式之观察者模式-Java内置观察者及总结

观察者模式执行过程

设计模式之观察者模式-Java内置观察者及总结

从观察者模式中体会,松耦合、高内聚、隔离影响的意义:

松耦合:类与类之间不要太依赖,没有顺序。依赖类不用关系被依赖类的内部是怎么实现的。

对应天气站项目:实现了subject接口的天气对象不需要关系具体的公告板内部怎么实现的,需要做哪些。subject子类之关心公告板是否实现了observer接口类即可。

联系凯哥:

公众号:凯哥Java(kaigejava)

凯哥个人博客:www.kaigejava.com

留个言,加个好友,一起学习

就算实现了observer的公告板对象项目死掉了,subject对象依然可以正常运行。反之,就算subject项目死掉了,依然不会影响observer项目的运行。无非就是公告板不能公布最新数据而已。这就很好的体现了松耦合的好处。

高内聚:对象内部是高内聚的。这样便于调试、扩展等。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:设计模式之观察者模式-Java内置观察者及总结-创新互联
当前路径:http://www.cdkjz.cn/article/dcephe.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220