关于观察者模式的总结
来源:互联网 发布:手机淘宝充值中心没有 编辑:程序博客网 时间:2024/06/11 20:05
Observer(观察者模式):定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
OBSERVER—想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦
所涉及的原则:
为了交互对象之间的松耦合设计而努力
类图:
Observer模式的角色:
Subject(被观察者)
被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象的队列列表。
ConcreteSubject
被观察者的具体实现。包含一些基本的属性状态及其他操作。
Observer(观察者)
接口或抽象类。当Subject的状态发生变化时,Observer对象将通过一个callback函数得到通知。
ConcreteObserver
观察者的具体实现。得到通知后将完成一些具体的业务逻辑处理。
并且,java的jdk中有类似的api可以供我们来使用。
典型例子:,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。
个人理解:agent2d中的世界模型,大概就是设计到了观察者模式。世界模型中的每一次变化,都会更新里面的一些内容。而每一个球员会获得自己所观察到的世界模型。然后根据世界模型进行判断处理,利用机器学习算法来处理这些信息,最终执行好的决策。
- 关于观察者模式的总结
- 观察者模式的总结
- 关于观察者模式的问题
- 关于观察者模式的问题
- Android 关于观察者模式使用代码总结
- 设计模式-观察者模式的另类总结
- 关于观察者模式的一些问题
- 关于跨进程的观察者模式
- android中关于观察者模式的demo
- 关于c++观察者模式的理解
- 关于iphone开发中观察者模式中的kvo机制的总结
- 关于 观察者模式
- 观察者模式总结
- 观察者模式总结
- 【Java】观察者模式总结
- 观察者模式总结
- 观察者模式简单总结
- 观察者模式学习总结
- UITabBarController
- iOS性能优化三部曲(初级)
- iOS网络篇-URLConnection基本使用
- Spring 无法注入静态变量,直接在静态方法中获取bean
- jQuery.trim() 函数详解
- 关于观察者模式的总结
- 正则表达式30分钟入门教程
- Codeforces 612B HDD is Outdated Technology 【水题】
- Linux 机器重启reboot命令
- Android下的屏幕适配
- log4j.properties配置与加载应用
- Android tips(三)-->android拍照相片旋转问题
- Bash shell编程<六>:处理用户输入
- 列出android 声卡