--[[
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
——Gang of Four
应用:
例如跨国公司开会,每个地区的领导说着不同的语言,但与会者却是不同地区的人,因此领导人需要翻译,这个翻译就是适配器。
例如我们玩游戏,特别玩以前不同平台的游戏,我们需要一个模拟器,这个模拟器就是适配器。
]]--
--以下假设两人开会,美国人Tom 中国人小明
Target = {}
function Target:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function Target:Listen(content)
print(content)
end
Adaptee = {}
function Adaptee:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
function Adaptee:Translate(content)
--在这里做适配操作
return "Are you happy?"
end
Adapter = Target:new()
function Adapter:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
o.adaptee = Adaptee:new()
return o;
end
function Adapter:Listen(content)
print(self.adaptee:Translate(content))
end
--小明说
c = "你幸福吗?"
aobama = Adapter:new()
--Tom实际听到的是
aobama:Listen(c)
个人云课堂https://m.study.163.com/provider/480000001930416/index.htm?share=2&shareId=480000001930416
输出结果:
Are you happy?