(1)介紹
介面卡模式(adapter pattern),一種常用設計模式,屬於結構型模式。
即為不相容的介面打造橋梁,將乙個類的介面轉換成其他類所需的介面。
(2)解決問題
已有的介面放入新場景的不相容性
(3)使用場景
建立高度重用性的類,使用介面卡可放入不同場景。
已有介面的引入,使用介面卡引入已有介面,不用重新構造啦。
嫁接,使用介面卡可把a嫁接到b中(ab本來毫無關聯)比如狼和人,狼人。
(4)核心
介面卡要繼承已有物件,來實現介面功能。
(5)**
結構:將乙個類的介面轉換成其他類所需的介面
內容:黑暗的降臨(新場景),需要人類的反抗,但女人力氣弱小拿不起鐵製狼牙棒(已有**類),男人力氣大可以拿起來。一位賢者,偉大的赫爾麥吉德(程式設計師)創造了一種神之手套(介面卡),它可以讓女人也拿起鐵製狼牙棒。
#人類
class person
(object)
: def __init__
(self)
: pass
def connect_weapon
(self,weapon)
: pass
#例項化人類a
class girl
(person)
: def connect_weapon
(self,weapon)
:print
('女生只能拿起木製狼牙棒,要想拿起鐵製狼牙棒,可能我需要一雙手套'
) weapon.
connect_wood()
#例項化人類b
class man
(person)
: def connect_weapon
(self,weapon)
:print
('男子漢是不用手套的,快點拿起鐵製狼牙棒吧'
) weapon.
connect_iron()
#手套類
class glove
(object)
: def __init__
(self)
: self._weapon =
ironweapon()
def connect_wood
(self)
:print
('我戴上了手套,我可以拿起鐵製狼牙棒了'
) self._weapon.
connect_iron()
#**類
class weapon
(object)
: def __init__
(self)
: pass
#例項化**類
class ironweapon
(weapon)
: def connect_iron
(self)
:print
('裝備了鐵製狼牙棒'
)'''
a物件呼叫連線方法,引數是介面卡
介面卡呼叫連線方法,引數是b物件
也可介面卡內部直接例項化b物件
a-介面卡-b --
----
-這就是介面卡
'''if __name__ ==
'__main__'
: rose =
girl
() #例項化rose這個人
iron1 =
ironweapon
() #例項化鐵製狼牙棒
glove =
glove
() #例項化手套
rose.
connect_weapon
(glove)#rose戴上手套
jack =
man(
) #例項化jack這個人
iron2 =
ironweapon
() # 例項化鐵製狼牙棒
jack.
connect_weapon
(iron2)
(6)優點
類的重用性
關聯兩個不同的類
靈活性強
(個人練習)
二十三種設計模式之介面卡模式
介面卡模式簡述 一類介面進行轉換成另一種介面,例如平時我們將三眼的插孔轉換成兩眼的轉換器 應用場景 火雞冒充鴨子 public inte ce duck public class greenheadduck implements duck override public void fly publi...
二十三種設計模式 羅列
1 工廠方法模式 factory method 2 抽象工廠模式 abstract factory 3 單例模式 singleton 4 建造者模式 builder 5 原型模式 prototype 6 介面卡模式 adapter 7 裝飾模式 decorator 8 模式 proxy 9 外觀模式...
C 設計模式(十三) 介面卡模式
將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。介面卡模式講了兩種型別,類介面卡模式和物件介面卡模式。本文使用書中籃球翻譯的例子,使用c 語言描述,存在的不足或問題有望各位指出。1 物件介面卡模式模版 物件介面卡模式 inclu...