设计模式-观察者模式(三) 天天通讯
(资料图)
最后,我们可以编写一个简单的测试程序来演示观察者模式:
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
这表明当气象数据发生变化时,观察者会自动收到通知并更新自己的状态。
观察者模式的优缺点
观察者模式的优点在于它可以实现对象之间的松耦合,主题对象和观察者对象之间的耦合度较低,可以相互独立地变化。这使得我们可以更加灵活地添加或删除观察者对象,也可以在不影响主题对象的情况下添加新的观察者对象。
另外,观察者模式还可以支持广播通信,当一个主题对象发生变化时,它的所有观察者对象都会收到通知,并且可以自动更新自己的状态。这种广播通信模式可以减少对象之间的相互依赖,从而使代码更加清晰、简洁。
观察者模式的缺点在于,如果观察者对象太多,会导致主题对象通知所有观察者对象的时间变长,从而影响程序的性能。另外,如果观察者对象之间有循环依赖的情况,可能会导致死循环,从而使程序崩溃。
下一篇:最后一页
-
粤水电(002060.SZ):巴楚能源公司拟123.03亿元投建粤水电巴楚县200万千瓦光储一体化项目格隆汇12月7日丨粤水电公布,为拓展清洁能源发电业务,扩大清洁能源发电业务规模,提高利润水平,公司拟由全资子公司新疆粤水电的全资子公司巴
-
浙江震元:公司互联网医院尚在建设中,未来将根据业务情况配置医生|今日关注(原标题:浙江震元:公司互联网医院尚在建设中,未来将根据业务情况配置医生)同花顺(300033)金融研究中心12月6日讯,有投资者向浙江震元(
-
妇炎洁广告被指侮辱女性上热搜 官方致歉来了!5月17日,妇炎洁广告被指侮辱女性登上热搜。据了解,近日,妇炎洁电商官方旗舰店一款女性私处用品广告被指侮辱女性,广告写道:中日韩三国
-
花8000多元买的商品,白等两个月却没收到货?亚马逊回应“花8000多元买的商品,白等了两个月却没收到货。”近日,消费者赵先生向《中国消费者报》投诉,称他通过亚马逊购物APP下了两笔订单,在等待两个月后订单均被强制取消。
-
广东省消委会发布二手车买卖合同示范文本为配合广东省推进“阳光二手车”工作,促进二手车流通行业健康发展,推动经营主体树立诚信经营理念,规范二手车交易行为,切实保护消费者的合法权益。
X 关闭
资讯
X 关闭
聚焦