观察者模式

观察者模式

使用场景

存在一个信息提供方(出版者),多个信息获取方(订阅者),获取方需要实时获取提供方的消息,并且能第一时间得到消息更新通知。

设计思想

消息获取方需要在出版者一方进行注册,成为订阅者,每当出版者的信息更新时,出版者会向自己所有的订阅者发出通知。

当订阅者不想接受消息时,取消在出版者方的订阅。

因为代码太多, 所以下面的例子都以伪代码实现

interface Object {
    //注册订阅者
    void register()
    //移除订阅者
    void remove()
    //通知订阅者
    void notify()
}

interface Observer {
    //更新消息
    void update()
}

上述是一个观察者模式的简单示例,同时在Java也内置了观察者模式的接口,具体如下:

//出版者(可被观察者)(class)
//需要注意的是Observable是一个类而不是一个接口
java.util.Observable
//订阅者(观察者)(interface)
java.util.Observer

你可能感兴趣的:(观察者模式)