1. 程式人生 > >設計模式(七)——適配器模式

設計模式(七)——適配器模式

目標 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();
        }
    }

設計模式(七)——適配器模式