观察者模式:在对象之间建立一对多的关系,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。
因为继承java.util.Observable和java.util.Observer已经介绍过了,今天我们介绍一个自己实现的观察者模式。上代码:
“主题”接口,负责增加、删除“观察者”,还有发布消息。
“观察者”接口,只负责更新。
“显示”接口,跟业务有关,在这里,我们用它来输入结果。
“主题”的具体类,在这个类里面,它负责把一个“观察者”放进列表里面(registeObserver),接收它自己需要的信息(setMessage),并发布到所有的“观察者”去(notifyObserver)。
“观察者”具体类,他在初始化的时候,就在“主题”里注册了,update方法是继承Observer的,它会被自动调用。
Test类,可见,只要注册了,当“主题”数据变化的时候,就会自动发布给“观察者”。
“观察者”模式其实很简单,就会一个注册,然后在把List迭代,把List里面的元素全部发送一次,就OK啦。自己实现的观察者模式比api的那个好一点,灵活性强,关键的是,它是一个接口,api的是一个类。基于对接口编程的思想,我们应该尽量考虑自己实现观察者模式。
当然,这里只是一个非常简单的例子,在实际应用中,观察者模式是非常常用,而且层次也会很多的。具体问题具体分析。好了,写了2个观察者模式了,观察者模式到此为止。谢谢!O(∩_∩)O哈哈~
本文介绍了一种简单实用的观察者模式实现方式,包括定义主题与观察者的接口及具体类,展示了如何通过注册观察者实现数据变化时的自动通知。

749

被折叠的 条评论
为什么被折叠?



