代理模式lua实现

--[[
	背景:陈冠稀想追求张伯芝,但是无从下手,于是找来了谢霆疯。
	陈冠稀叫谢霆疯帮她送洋娃娃、玫瑰花和巧克力。于是谢霆疯就
	是代理人。
]]--


GiveGift = {girlname = nil}

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

Pursuit = GiveGift:new()

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

function Pursuit:GiveDolls()
	if self.girlname ~= nil then
		print("送"..self.girlname.."洋娃娃")
	end
end

function Pursuit:GiveFlowers()
	if self.girlname ~= nil then
		print("送"..self.girlname.."玫瑰花")
	end
end

function Pursuit:GiveChocolate()
	if self.girlname ~= nil then
		print("送"..self.girlname.."巧克力")
	end
end

Proxy = GiveGift:new()

function Proxy:new(o,name)
	o = o or {}
	setmetatable(o,self)
	self.__index = self
	o.pursuit = Pursuit:new({},name)
	return o;
end

function Proxy:GiveDolls()
	self.pursuit:GiveDolls()
end

function Proxy:GiveFlowers()
	self.pursuit:GiveFlowers()
end

function Proxy:GiveChocolate()
	self.pursuit:GiveChocolate()
end

XieTingFeng = Proxy:new({},"张伯芝")

XieTingFeng:GiveDolls()

XieTingFeng:GiveFlowers()

XieTingFeng:GiveChocolate()

输出结果:

送张伯芝洋娃娃
送张伯芝玫瑰花
送张伯芝巧克力


PS:谢霆疯送了这么多礼物给张伯芝,结果他俩好上了;后来张伯芝发现了谢霆疯只是一个代理人,礼物其实是陈冠稀送的;
后来张伯芝和陈冠稀就OOXX了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值