Lua模板方法(Template Method)

 
TestPaper = {}
 
function TestPaper:new(o)
    o = o or {}
    setmetatable(o,self)
    self.__index = self
    return o;
end
 

-- 稳定
function TestPaper:Run()
    self:TestQuestion1()  --稳定
    self:TestQuestion2() --稳定
    self:TestQuestion3() --包含变化(子类实现)
end

function TestPaper:TestQuestion1()
    print("孙悟空的师弟是谁?")
    print("A 猪七戒        B 猪八戒              C 猪九戒")
    print("答案是:B")
end

function TestPaper:TestQuestion2()
    print("猪八戒的师弟是谁?")
    print("A 沙和尚        B 沙道士              C 沙井盖")
    print("答案是:A")
end

function TestPaper:TestQuestion3()
    print("沙和尚的大师兄是谁?")
    print("A 孙中山        B 孙权        C 孙悟空")
    print("答案是:"..self:Answer3())
end
 
-- 子类实现答案3
GroupATestPaper = TestPaper:new()
function GroupATestPaper:Answer3()
    return "A"
end

GroupATestPaper:Run()
 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值