『23種類のデザインモデルLua編』-仲介者モデル
2236 ワード
北漂の生涯の住宅源はすべて家屋の仲介者の手に掌握して、家を借りるのは仲介を通じて大家に連絡するしかありません.PS:北京の賃貸仲介料は一ヶ月の家賃ですね.
一、Custom.luaの取引先の基礎類の大家と借家者は正確に言えばすべて仲介の取引先です
二、Mediator.lua不動産屋(双方の情報を把握している)
三、mian.lua主関数
四、出力結果は以下の通り
一、Custom.luaの取引先の基礎類の大家と借家者は正確に言えばすべて仲介の取引先です
--/**************************************************************************
-- Copyright: www.SaintGrail.com
-- Author: liu jing
--- Date: 2014-08-27
--- Description:
---**************************************************************************/
Custom={}
--
Custom.name=nil
--
Custom.mediator=nil
function Custom:new(_o)
_o = _o or {}
setmetatable(_o,self)
self.__index=self
return _o
end
function Custom:Notify(_str)
self.mediator:Notify(_str,self)
end
function Custom:Say(_str)
print(self.name.." get message :".._str)
end
二、Mediator.lua不動産屋(双方の情報を把握している)
--/**************************************************************************
-- Copyright: www.SaintGrail.com
-- Author: liu jing
--- Date: 2014-08-27
--- Description:
---**************************************************************************/
--
Mediator={}
--
Mediator.landlord=nil
--
Mediator.tenant=nil
function Mediator:new(_o)
_o = _o or {}
setmetatable(_o,self)
self.__index = self
return _o
end
function Mediator:Notify(_str,_obj)
if _obj==self.landlord then
self.tenant:Say(_str)
else
self.landlord:Say(_str)
end
end
三、mian.lua主関数
require ("Mediator")
require ("Custom")
local function main()
--
local mediator = Mediator:new()
--
local landlord = Custom:new()
landlord.mediator=mediator
landlord.name = "fangdong"
--
local tenant = Custom:new()
tenant.mediator=mediator
tenant.name = "fangke"
mediator.landlord=landlord
mediator.tenant=tenant
tenant:Notify(" you fang zi ma?")
landlord:Notify(" mei fang zi")
end
main()
四、出力結果は以下の通り
Debugger v1.1.0
Debugger: Trying to connect to 127.0.0.1:10000 ...
Debugger: Connection succeed.
fangdong get message : you fang zi ma?
fangke get message : mei fang zi