精易论坛
标题: 设计模式-观察者模式(Observer Pattern) [打印本页]
作者: 晴雯晴雯 时间: 2017-9-24 23:19
标题: 设计模式-观察者模式(Observer Pattern)
本帖最后由 晴雯晴雯 于 2017-9-24 23:21 编辑
http://blog.csdn.net/lcl_data/article/details/9208561
原文地址,我参考的就是这篇
简单的理解就是,观察者会记住通知者的指针,方便以后去找观察者所需要的通知(Notify存在于通知者中);而通知者会用一个栈来记住所有的观察者的指针,每新建一个观察者就会入一次栈。当需要通知时,遍历栈,调用每个栈中观察者的Updata函数,去通知观察者。
主要优缺点
由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。
观察者模式支持广播通信。被观察者会向所有的登记过的观察者发出通知。
如果一个被观察者对象有很多直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。
本程序不足之处:
有内存泄漏,就是有的地方申请了内存但在用完之后没有销毁,在这个例子中没事,但如果实际长时间应用中会因为内存不足而最终退出。
栈用的是官方论坛下载的栈类
同时由于易语言对指针和类的支持不太好,也搜索了一些特殊的方法,但不影响整个程序的理解。
观察者模式.e
(10.45 KB, 下载次数: 10)
-
观察者模式截图_20170924214626.png
(36.68 KB, 下载次数: 0)
作者: 晴雯晴雯 时间: 2017-9-25 10:02
走过路过不要错过

作者: |bingbing| 时间: 2017-9-25 16:01
回帖支持一下~
作者: l873991734 时间: 2017-10-3 15:23
学到啦哈哈哈666牛逼!
作者: Tonwed 时间: 2017-10-3 19:59
新手下了看看。
作者: l873991734 时间: 2017-10-8 20:11
过来瞅瞅看看学习下
作者: 1207301498 时间: 2017-10-29 21:57
学习学习谢谢
作者: 脚本定制专员 时间: 2018-9-7 14:07
列害
感谢分享
作者: litaomn 时间: 2022-4-16 11:08
用易语言来搞面向对象概念 属实有点难为人了
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |