设计模式-观察者模式(三)|当前关注
(资料图片)
最后,我们可以编写一个简单的测试程序来演示观察者模式:
public class WeatherStation { public static void main(String[] args) { ConcreteSubject weatherData = new ConcreteSubject(); ConcreteObserver currentConditionsDisplay = new ConcreteObserver(); weatherData.registerObserver(currentConditionsDisplay); weatherData.setMeasurements(80, 65, 30.4f); weatherData.setMeasurements(82, 70, 29.2f); weatherData.setMeasurements(78, 90, 29.2f); }}
运行测试程序后,可以看到如下输出:
Current conditions: 80.0F degrees and 65.0% humidity and 30.4PaCurrent conditions: 82.0F degrees and 70.0% humidity and 29.2PaCurrent conditions: 78.0F degrees and 90.0% humidity and 29.2Pa
这表明当气象数据发生变化时,观察者会自动收到通知并更新自己的状态。
观察者模式的优缺点
观察者模式的优点在于它可以实现对象之间的松耦合,主题对象和观察者对象之间的耦合度较低,可以相互独立地变化。这使得我们可以更加灵活地添加或删除观察者对象,也可以在不影响主题对象的情况下添加新的观察者对象。
另外,观察者模式还可以支持广播通信,当一个主题对象发生变化时,它的所有观察者对象都会收到通知,并且可以自动更新自己的状态。这种广播通信模式可以减少对象之间的相互依赖,从而使代码更加清晰、简洁。
观察者模式的缺点在于,如果观察者对象太多,会导致主题对象通知所有观察者对象的时间变长,从而影响程序的性能。另外,如果观察者对象之间有循环依赖的情况,可能会导致死循环,从而使程序崩溃。
关键词:
推荐阅读
据市场监管总局5月5日消息,4月26日至27日,全国市场监管所标准化规范化建设座谈会在四川省成都市召开。会
2023-05-05 16:51:04
【山东:到2025年培育专精特新“小巨人”企业1000家左右】据山东省工业和信息化厅消息,山东省制造业创新能
2023-05-05 14:41:00
交银理财产品部副总经理方舟:既注重投资经理能力特点和产品的适配性,也要关注投资资产和产品形态、特征的
2023-05-05 13:20:09
证券时报e公司讯,动力新科在互动平台表示,2023年一季度,受基建投资带动工程类重卡需求延迟影响,上汽红
2023-05-05 12:02:37
为促进教师专业成长,提升幼儿园整体教学水平,加强集团各园所之间的交流学习,2023年4月25日上午,合肥幼
2023-05-05 11:52:09
新华社北京5月4日电 题:强势复苏 体验升级——2023年“五一”假期旅游市场观察从传统旅游热点重现人山人
2023-05-05 11:00:00
每经AI快讯,太平洋05月05日发布研报称,给予杰普特(688025 SH,最新价:56 3元)买入评级。评级理由主要包
2023-05-05 10:40:14
202年5月5日,根据特斯拉中国官网显示,全新ModelS(图片|配置|询价)及全新ModelX(图片|配置|询价)全系车型
2023-05-05 09:53:20
汇能科技2022年亏损2 76万同比亏损减少本期项目进展顺利2023 5 59:40:08挖贝网苏言挖贝网5月5日,汇能科技
2023-05-05 09:46:05
“没想到困扰我们的难题,政府这么快就帮我们协调解决了!”昨日,在荥阳市城关乡,郑泵科技建设项目负责人
2023-05-05 08:53:24
资讯
品牌