--模板方法模式是通过把不变行为搬移到基类,去除之类中的重复代码来体现它的优势。
--下面以考试试卷为例,试题都是一样的,但是答案可能不一样
TestPaper = {}
function TestPaper:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function TestPaper:TestQuestion1()
print("孙悟空的师弟是谁?")
print("A 猪七戒 B 猪八戒 C 猪九戒")
print("答案是:"..self:Answer1())
end
function TestPaper:Answer1()
return ""
end
function TestPaper:TestQuestion2()
print("猪八戒的师弟是谁?")
print("A 沙和尚 B 沙道士 C 沙井盖")
print("答案是:"..self:Answer2())
end
function TestPaper:Answer2()
return ""
end
function TestPaper:TestQuestion3()
print("沙和尚的大师兄是谁?")
print("A 孙中山 B 孙权 C 孙悟空")
print("答案是:"..self:Answer3())
end
function TestPaper:Answer3()
return ""
end
--小组A的试卷
GroupATestPaper = TestPaper:new()
function GroupATestPaper:Answer1()
return "B"
end
function GroupATestPaper:Answer2()
return "C"
end
function GroupATestPaper:Answer3()
return "A"
end
--小组B的试卷
GroupBTestPaper = TestPaper:new()
function GroupBTestPaper:Answer1()
return "A"
end
function GroupBTestPaper:Answer2()
return "B"
end
function GroupBTestPaper:Answer3()
return "C"
end
--小明是小组A的一员
print("********小明的试卷*********")
XiaoMingTestPaper = GroupATestPaper:new()
XiaoMingTestPaper:TestQuestion1()
XiaoMingTestPaper:TestQuestion2()
XiaoMingTestPaper:TestQuestion3()
--小红是小组B的一员
print("********小红的试卷*********")
XiaoHongTestPaper = GroupBTestPaper:new()
XiaoHongTestPaper:TestQuestion1()
XiaoHongTestPaper:TestQuestion2()
XiaoHongTestPaper:TestQuestion3()
输出结果是:
********小明的试卷*********
孙悟空的师弟是谁?
A 猪七戒B 猪八戒C 猪九戒
答案是:B
猪八戒的师弟是谁?
A 沙和尚B 沙道士C 沙井盖
答案是:C
沙和尚的大师兄是谁?
A 孙中山B 孙权 C 孙悟空
答案是:A
********小红的试卷*********
孙悟空的师弟是谁?
A 猪七戒B 猪八戒C 猪九戒
答案是:A
猪八戒的师弟是谁?
A 沙和尚B 沙道士C 沙井盖
答案是:B
沙和尚的大师兄是谁?
A 孙中山B 孙权 C 孙悟空
答案是:C
交流群:315249378
如有不正确,欢迎交流讨论!
分享到:
相关推荐
2、模板方法模式lua实现 3、观察者模式lua实现 4、状态模式lua实现 5、迭代器模式lua实现 6、备忘录模式lua实现 7、命令模式lua实现 8、职责链模式lua实现 9、解释器模式lua实现 10、中介者模式lua实现 11、访问者...
解析Lua实现方法 解析Lua实现方法
lua实现 basse64 lua lua实现 basse64 lua lua实现 basse64 lua
Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。
MVVM源于MVC(Model-View-Controller)模式,...MVVM本质就是基于操作数据来操作视图进而操作DOM,借助于MVVM无需直接操作DOM,开发者只需完成包含声明绑定的视图模板,编写ViewModel中有业务,使得View完全实现自动化。
lua实现webservice调用 通过gsoap 实现 C/C++ 调用web service
cocos2d-lua 实现富文本
Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数
cocos2dx 虚拟摇杆的lua实现
Lua实现PureMVC
代码内容是用lua语言编写的,所需的固件是固件自动生成网站生成的,勾选(crypto, ds18b20, encoder, file, gpio, http, i2c, mqtt, net, node, pwm, sjson, spi, tmr, uart, wifi)用mqtt连接阿里云从而实现wifi继...
自己写的中文笔划输入法算法演示程序,用Lua实现的,大家看看有没有参考价值,呵呵
lua和Android之间的互相调用,代码比较简单,基本阐述了两者之间的调用原理
Lua实现OOP,可以继承,覆盖,sample里面实现了简单的lua类定义,并封装了简单的事件驱动机制
NGINX + LUA实现复杂的控制
汉诺塔是一种经典的题目,用很多种语言均可实现。 本例子是用lua实现汉诺塔
用LUA实现在stm32平台上的在线编程
Lua语言实现特殊字符过滤,对于使用Lua开发移动端游戏的童鞋非常常用。代码亲测有效,附使用实例
lua类的实现
《终极网络服务端编程》的lua server 实现了lua脚本处理服务端逻辑+数据库 lua服务端 c++版服务端客户端(netserver,netclient) lua服务端 就是 c++ netserver项目的lua脚本化版 运行效果 ![image]...