1. 程式人生 > >設計模式(4)

設計模式(4)

介面卡模式:把一個類的介面變換成客戶端所期待的另一種介面(以兩孔、三孔插座為例)     類的介面卡模式:      public interface IThreeHole     {         void Request();     }     public abstract class TwoHole     {         public void SpecificRequest()         {             Console.WriteLine("我是兩個孔的插頭");         }     }     /// <summary>     /// 介面卡類,介面要放在類的後面     /// 介面卡類提供了三個孔插頭的行為,但其本質是呼叫兩個孔插頭的方法     /// </summary>     public class PowerAdapter:TwoHole,IThreeHole     {         /// <summary>         /// 實現三個孔插頭介面方法         /// </summary>         public void Request()         {             // 呼叫兩個孔插頭方法             this.SpecificRequest();         }     }          物件的介面卡模式:     public class ThreeHole     {         // 客戶端需要的方法         public virtual void Request()         {         }     }     public class TwoHole     {         public void SpecificRequest()         {             Console.WriteLine("我是兩個孔的插頭");         }     }     /// <summary>     /// 介面卡類,這裡介面卡類沒有TwoHole類,     /// 而是引用了TwoHole物件,所以是物件的介面卡模式的實現     /// </summary>     public class PowerAdapter : ThreeHole     {         public TwoHole twoholeAdaptee = new TwoHole();         public override void Request()         {             twoholeAdaptee.SpecificRequest();         }     }