標籤:style blog http color 使用 html
實際上適配器模式是用於解耦。設想一下我們的程式模組A在與模組B打交道時,需要在許多地方多次使用B中某個類的方法,而負責開發B的程式猿Tom還未完全實現該類,會隨時更改該類中的方法,那麼當Tom在修改時,負責A的攻城獅Jerry不得不進行苦逼的修改。聰明的專案經理Dabao想出了好方法——適配器模式,於是在Tom和Jerry之間進行了如下設計:
/// <summary> /// B中目前只定義了英雄KASS /// </summary> public class KASS { public void R() { //KASS的技能 } } /// <summary> /// 定義英雄的介面 /// </summary> public class Hero { /// <summary> /// 使用virtual修飾以便子類可以重寫 /// </summary> public virtual void attack() { //英雄進攻的方法和招數 } } /// <summary> /// 定義適配器 /// B暫時提供英雄KASS /// </summary> public class HeroAdapter:Hero { // 建立一個私人的英雄KASS對象 private KASS kass = new KASS(); /// <summary> /// 通過重寫,表面上調用attack()方法,實際調用R() /// </summary> public override void attack() { kass.R(); } } /// <summary> /// Tom負責的模組A /// </summary> public class A { public static void Main(string[] args) { // A需要藉助B中的英雄完成進攻的任務,但B還未定下是那個英雄,所以不能直接建立特定英雄的對象 // 但我們知道肯定要一個英雄,並且需要這個英雄去進攻 Hero hero = new HeroAdapter(); hero.attack(); //... } }
詳細說明:http://wp.662p.com/thread-8244-1-1.html