设计模式——观察者模式

观察者模式:本质上就是一种订阅/发布的模型,从逻辑上来讲就是一对多的依赖关系。

顾名思义,观察者模式当然有一个观察者和一个被观察者,在被观察者有变动的时候,相应的观察者也要有些操作。


①定义一个被观察者。

 

②定义一个观察者


③测试类



以上就是观察者模式的实现,总结如下:

<1>每个观察者都需要保存在被观察者的集合中,同时给被观察者提供添加和删除的方法。

<2>被观察者通过构造参数传递给观察者,当被观察者发生改变时遍历通知每个观察者


Java API有内置的观察者模式,java.util包中提供了Observer接口和Observerable类。

创建一个观察者,只需要实现Observer接口,创建一个被观察者只需要继承Observerable类。


在Observer观察者接口中,提供了update方法。

在Observerable类中,已经给我们创建的有观察者的集合,注册观察者,删除观察者,通知观察者,更改状态等一系列方法。

在父类中初始化就定义了一个changed=false。每次在通知之前要更改changed为true,通知完成之后,再更改为false。因为在通知观察者的时候api中验证了changed的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值