介面卡模式是一種介面適配技術,可通過某個類來使用另乙個介面與之不相容的類,運用此模式時,兩個類都無須改動。
運用場景:
想把某個類從其原先的應用場景拿出來放到另乙個環境下執行,而這個類又不能修改,即可考慮介面卡模式。
根據客戶的需要,把現有的介面,通過介面卡改變成客戶需要的介面。
(1)定義乙個target類,在類中,定義客戶需要的介面;
(2)定義介面卡,在介面卡adaptee中定義實際介面;
(3)例項化target介面,並在介面卡requst介面中,把實際介面例項化,根據客戶需要進行封裝。
例程:假設有乙個簡單的page類用於渲染頁面,它需要標題、正文段落以及「渲染器類」的例項。
uml類圖:
python原始碼分析:
class
adaptee
:def
__init__
(self)
:pass
defspecificrequest
(self)
:print
("實際介面"
)class
target
:def
__init__
(self)
: self.adaptee = adaptee(
)def
requset
(self)
: self.adaptee.specificrequest(
)client = target(
)client.requset(
)
結構型設計模式
結構模式描述的是如何和組合類和物件已獲得更大的結構。類模式和物件模式之間的區別是 類描述的如何通過繼承提供更有用的介面,而物件描述的是通過使用物件的組合或將物件包涵在別的物件裡面以獲得更有用的結構。介面卡模式 可以將類的乙個藉口匹配另乙個介面 組合模式 物件的組合 模式 乙個簡單的物件代替乙個複雜的...
結構型設計模式
模式結構體 模式 為其他物件提供一種 以控制對這個物件的訪問。abstract class base class adaptera public adapterbase public override void remove company c public override void displa...
設計模式 結構型軟體設計模式 一
組合模式允許一致的對待複雜和原始物件的介面,在物件導向程式設計技術中,組合物件是乙個或者多個相似物件構成的物件,各個物件有相似的功能。關鍵的概念是客戶類以相同的方式對待單獨的物件與一組物件,即所謂的組合物件。組合模式有時候又叫做部分 整體模式,在樹形結構中模糊了簡單元素和複雜元素的概念,客戶程式可以...