设计模式--观察者模式
来源:互联网 发布: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
- 模式设计:观察者模式
- 设计模式-----观察者模式
- 设计模式-观察者模式
- 设计模式--观察者模式
- 设计模式:观察者模式
- 设计模式-----观察者模式
- 设计模式:观察者模式
- 设计模式-观察者模式
- 设计模式 观察者模式
- 设计模式-观察者模式
- 设计模式-【观察者模式】
- 设计模式-观察者模式
- 设计模式 -- 观察者模式
- 设计模式-观察者模式
- 【设计模式】观察者模式
- 设计模式- 观察者模式
- 设计模式- 观察者模式
- 设计模式--观察者模式
- nyoj 860 又见01背包 【01-背包变形】
- android蓝牙开发---与蓝牙模块进行通信
- Snowflake Snow Snowflakes寻找相似雪花
- 二叉树的非递归遍历
- poj2251--Dungeon Master(搜索练习3-三维bfs)
- 设计模式--观察者模式
- 自定义Access-Control-Allow-Origin策略以解决字体文件跨域权限问题
- 利用aircrack-ng工具获取附近wifi的密码
- MTD设备驱动
- leetcode_Roman to Integer_easy_可以看看方法
- C# winform对话框用法大全
- 1018. 锤子剪刀布
- Facebook 推出 App Links 开发者工具意在解决什么问题?
- Java_集合操作_遍历集合方法