【Lua】观察者模式在Lua中的实现
来源:互联网 发布:淘宝去哪进货 编辑:程序博客网 时间:2024/05/03 17:59
--LUA对于观察者模式的实现--被观察者表Subject = {}--类似父类,具体对于lua面向对象编程思想学习看这里:--http://www.jb51.net/article/55724.htmfunction Subject:new(obj)obj = obj or {}setmetatable(obj, self) --实例化对象指向Subject,这样就以Subject为模版了--将Father的__index字段指向自己,以便新对象在找不到指定的key时可以被重定向,即访问Father拥有的keyself.__index = selfendCreateSubject = Subject:new()--注册function CreateSubject:Add(obs)if self.observers == nil thenself.observers = {}endtable.insert(self.observers,obs)end--注销function CreateSubject:Del(obs)for k, v in pairs(self.observers) doif v == obs thentable.remove(self.observers,k)breakendendendfunction ConcreteSubject:Notify()for _, v in pairs(self.observers) dov:Update()endendObserve = {}function Observer:new(obj)obj = obj or {}setmetatable(obj,self)self.__index = selfreturn oendCreateObserver = Observer:new()function CreateObserver:new(s,n)obj = {}setmetatable(obj,self)self.__index = selfobj.subject = sobj.observername = nreturn objendfunction CreateObserver:Update() print(self.observername.."!!"..self.subject.subjectstate)ends = CreateSubject:Update()xiyangyang = CreateObserve:new(s,"喜羊羊")meiyangyang = CreateObserve:new(s,"美羊羊")lanyangyang = CreateObserve:new(s,"懒羊羊")s:Add(xiyangyang)s:Add(meiyangyang)s:Add(lanyangyang)s.subjectstate = "灰太狼来了快躲起来!"s.Notify()s:Del(lanyangyang)s.subjectstate = "灰太狼走了出来吧!"s:Notify()
0 0
- 【Lua】观察者模式在Lua中的实现
- 观察者模式lua实现
- 观察者模式--lua实现
- Lua中实现观察者模式
- lua的观察者实现
- 利用观察者模式实现Cocos2DX-lua游戏中的消息管理系统
- Lua中的模式
- lua中的匹配模式
- LUA实现状态模式
- 策略模式lua实现
- 装饰模式lua实现
- 代理模式lua实现
- 原型模式lua实现
- 外观模式lua实现
- 状态模式lua实现
- 适配器模式lua实现
- 迭代器模式lua实现
- 备忘录模式lua实现
- ViewPager或ImgeView加载图片出现内存溢出(OOM)
- 安卓开发1--搭建最新开发环境及新建项目检测
- java读取properties文件的几种方法
- sqlserver数据库收缩日志并限制最大增长
- Google官方Android API指南索引
- 【Lua】观察者模式在Lua中的实现
- Unique ID的特性需求分析
- JVM垃圾收集
- 文件和目录
- Android Canvas drawText实现中文垂直居中
- ZOJ 1038 T9
- Redis3.0《集群环境搭建》
- windows下 apache-tomcat-7.0.40加大内存配置
- 如何删除xcode项目中不再使用的图片资源