精易论坛

标题: 设计模式-观察者模式(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)

观察者模式截图_20170924214626.png

作者: 晴雯晴雯    时间: 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