OperationFactory = {}
OperationAdd = {}
OperationSub = {}
OperationMul = {}
OperationDiv = {}
function OperationAdd:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function OperationAdd:GetResult()
if self.NumberA and self.NumberB then
return self.NumberA + self.NumberB;
else
return "error"
end
end
function OperationSub:new()
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function OperationSub:GetResult()
if self.NumberA and self.NumberB then
return self.NumberA - self.NumberB;
else
return "error"
end
end
function OperationMul:new()
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function OperationMul:GetResult()
if self.NumberA and self.NumberB then
return self.NumberA * self.NumberB;
else
return "error"
end
end
function OperationDiv:new()
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function OperationDiv:GetResult()
if self.NumberA and self.NumberB and self.NumberB~=0 then
return self.NumberA / self.NumberB;
else
return "error"
end
end
function OperationFactory : CreateOperation(oper)
if oper == "+" then
return OperationAdd:new()
elseif oper == "-" then
return OperationSub:new()
elseif oper == "*" then
return OperationMul:new()
elseif oper == "/" then
return OperationDiv:new()
else
end
end
Oper1 = OperationFactory:CreateOperation("+")
Oper1.NumberA = 10
Oper1.NumberB = 5
print(Oper1:GetResult())
Oper2 = OperationFactory:CreateOperation("-")
Oper2.NumberA = 10
Oper2.NumberB = 5
print(Oper2:GetResult())
Oper3 = OperationFactory:CreateOperation("*")
Oper3.NumberA = 10
Oper3.NumberB = 5
print(Oper3:GetResult())
Oper4 = OperationFactory:CreateOperation("/")
Oper4.NumberA = 10
Oper4.NumberB = 5
print(Oper4:GetResult())
交流群:315249378
如有不正确,欢迎交流讨论
分享到:
相关推荐
1、简单工厂模式lua实现 2、工厂方法模式lua实现 3、原型模式lua实现 4、建造者模式lua实现 5、单例模式lua实现 6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式lua实现 4、...
Cocos2d-x实现潜艇大战——简单工厂模式,对象池,源代码及分析类图
lua实现 basse64 lua lua实现 basse64 lua lua实现 basse64 lua
Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。
lua实现webservice调用 通过gsoap 实现 C/C++ 调用web service
cocos2d-lua 实现富文本
Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数
lua简单计算器vc交互实现 lua简单计算器vc交互实现
cocos2dx 虚拟摇杆的lua实现
MVVM源于MVC(Model-View-Controller)模式,期间还演化出MVP(Model-View-Presenter)模式。MVVM的出现促进了GUI前端开发和后端开发逻辑的分离,提高了前端开发效率。 MVVM的核心是数据驱动即ViewModel,ViewModel是...
解析Lua实现方法 解析Lua实现方法
Nginx+upload+lua实现简单文件上传服务
Lua实现OOP,可以继承,覆盖,sample里面实现了简单的lua类定义,并封装了简单的事件驱动机制
功能不完善,不能直接使用,只能作为帖子的参考一起使用
Lua实现PureMVC
自己写的中文笔划输入法算法演示程序,用Lua实现的,大家看看有没有参考价值,呵呵
NGINX + LUA实现复杂的控制
汉诺塔是一种经典的题目,用很多种语言均可实现。 本例子是用lua实现汉诺塔
用LUA实现在stm32平台上的在线编程
Node-Lua是一款基于Lua实现的脚本和服务器引擎,它支持构建海量Lua服务(Context_Lua)并以多线程方式运行在多核服务器上,采用了任务多路复用的设计方案,有效利用了多核优势。node-lua致力于构建一个快速、简单易用...