設計模式(七)——適配器模式
阿新 • • 發佈:2018-12-14
目標 cli new 適配器模式 rdd style void 部分 原本
適配器模式:將一個類的接口,轉換成客戶期望的另一個接口。適配器讓原本接口不兼容的類可以無間合作。
這個模式可以創建適配器進行接口轉換,讓不兼容的接口變成兼容。
這個模式主要有四個部分:
Client:客戶
Target:目標接口
Adapter:適配器
Adaptee:被適配者
例子:假設有一個鴨子類,還有一個火雞類,想讓天鵝完成火雞做的事情,這時候我們就需要一個鴨子適配器.
鴨子類:
public interface Duck { void Quack(); void Fly(); } public class MallardDuck : Duck {public void Quack() { Debug.WriteLine("Quack"); } public void Fly() { Debug.WriteLine("Fly"); } }
火雞類:
public interface TurKey { void Gobble(); void Fly(); } public class WildTurKey : TurKey {public void Gobble() { Debug.WriteLine("Gobble gobble"); } public void Fly() { Debug.WriteLine("I am Flying Short Distance"); } }
鴨子對象適配器 (采用包含的方式):
public class TurKeyAdapter : Duck { TurKey turKey; public TurKeyAdapter(TurKey turKey) {this.turKey = turKey; } public void Quack() { turKey.Gobble(); } public void Fly() { turKey.Fly(); } }
鴨子的類適配器(類適配器采用多重繼承的方式):
public class TurKeyAdapter : WildTurKey, Duck { public void Quack() { this.Gobble(); } public new void Fly() { base.Fly(); } }
設計模式(七)——適配器模式