设计模式--观察者模式

来源:互联网 发布:windows version 1703 编辑:程序博客网 时间:2024/06/14 18:53

有一张图表示观察者模式

观察者模式定义了一种一对多的关系,我们在一个实体上监听消息,然后通知所有订阅了这个实体的观察者,新的观察者能够通过注册来实现对主题的订阅,也能过听过解除订阅来取消订阅。

所以主题需要至少提供4个方法

public interface subject{//观察者注册public void register(object o);//通知所有订阅者public void notifyAll();//取消订阅public void cancel(object o);//监听外部的消息public void getMessage();}

而观察这个需要提供至少3个方法

public interface observer{//注册public void register(subject s);//得到消息public void getNotified(subject s[,messagetype message]);//取消订阅publi void cancelRegister(subject s);}

上面是一个简单的观察者模式的实现,在observer中 每个方法我都添加了subject这个参数,这是为了让一个观察者能够订阅多个对象,另外在得到消息的时候 定义消息是可选的,这是因为消息不一定是主题推送给观察者,观察者得到消息之后可以自己去主题那边拿消息。



0 0
原创粉丝点击