介面卡模式 The Adapter Pattern

2021-08-22 17:12:06 字數 1487 閱讀 1863

介面卡模式——將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。(摘自《head first design patterns》)

以下是自已用vs畫了乙個簡圖:

實現乙個大型**和二個小型**:

class axe : ibigweapon

public void wheel()

#endregion

}class knife : ismallweapon

public void pierce()

#endregion

}class sword : ismallweapon

public void pierce()

#endregion

}

本來令狐沖只能拿著小型**攻擊,介面卡要達到的目的就是讓令狐沖也能用大型**,下面是令狐沖的類:

class linghuchong

public void attack2(ismallweapon weapon)

}

可見,他耍的獨孤九劍第一式和第二式都只能用小型**,要想讓他用大型**,就得為他建立乙個介面卡:

class bigweaponadapter : ismallweapon

public void pierce()

#endregion

public bigweaponadapter(ibigweapon weapon)

}

把斧子適配成小型**就可以讓令狐沖耍獨孤九劍了,下面測試一下:

linghuchong lhc = new linghuchong();

ibigweapon axe = new axe();

ismallweapon knife = new knife();

ismallweapon sword = new sword();

ismallweapon axeadapter = new bigweaponadapter(axe);

產生異常

//用介面卡

lhc.attack1(axeadapter);

lhc.attack1(knife);

lhc.attack1(sword);

輸出結果:

獨孤九劍第一式:輪斧生風,勢不可擋!落斧劈砍,金鋼可破!

獨孤九劍第一式:揮動匕首,擾敵心智!匕首刺殺,以快致勝!

獨孤九劍第一式:隨風舞劍,可防可攻!借風刺劍,無人可擋!

-------------- 關於獨孤九劍第二式就暫不測試了,呵呵。

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...