什麼是適配器模式?java
Adapter模式使的本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。設計模式
/// <summary> /// 定義客戶端期待的接口 /// </summary> public class Target { /// <summary> /// 使用virtual修飾以便子類能夠重寫 /// </summary> public virtual void Request() { Console.WriteLine("This is a common request"); } } /// <summary> /// 定義須要適配的類 /// </summary> public class Adaptee { public void SpecificRequest() { Console.WriteLine("This is a special request."); } } /// <summary> /// 定義適配器 /// </summary> public class Adapter:Target { // 創建一個私有的Adeptee對象 private Adaptee adaptee = new Adaptee(); /// <summary> /// 經過重寫,表面上調用Request()方法,變成了實際調用SpecificRequest() /// </summary> public override void Request() { adaptee.SpecificRequest(); } } //客戶端代碼 class Program { static void Main(string[] args) { // 對客戶端來講,調用的就是Target的Request() Target target = new Adapter(); target.Request(); Console.Read(); } }
二、 想要創建一個能夠重用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在未來引進的類一塊兒工做。ide
三、 兩個類所作的事情相同或類似,可是具備不一樣接口的時候。spa
四、 舊的系統開發的類已經實現了一些功能,可是客戶端卻只能以另外接口的形式訪問,但咱們不但願手動更改原有類的時候。.net
五、 使用第三方組件,組件接口定義和本身定義的不一樣,不但願修改本身的接口,可是要使用第三方組件接口的功能設計
其餘設計模式:代理