适配器模式

适配器模式定义:将一个类的接口,转换成客户希望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

场景:妈妈想要吃皇上皇的烤鸭(烤鸭呱呱的叫,能飞很远;火鸡姑姑的叫,只能飞一段距离)

1.妈妈专门提供给的烤鸭接口:

public interface IDuck
    {
        void Quack();
        void Fly();
    }

2.但是到了皇上皇,店员说:“我们只有火鸡了,没有烤鸭了,但是我可以帮你用火鸡来冒充一下烤鸭”,我说:“如何冒充?”,“我用这个蓝头的火鸡来冒充下烤鸭把”

以下是火鸡的接口及实现,很明显火鸡的叫法和飞行和烤鸭的不适合;

 
//火鸡接口
public interface ITurkey
    {
        void Gobble();
        void Fly();
    
    }

//蓝头火鸡
 public class WildTurkey : ITurkey
    {
        public void Gobble()
        {
            Console.Write("I Can Gobble..");
        }

        public void Fly()
        {
            Console.Write("I Can Fly a Short..");
        }
    }

 3.那我们来构造一个烤鸭适配器把,代码如下:

 public class DuckAdaper : IDuck
    {
        ITurkey Turkey;
        public DuckAdaper(ITurkey turkey)
        {
            Turkey = turkey;
        }
        public void Quack()
        {
            Turkey.Gobble();
        }

        public void Fly()
        {
            for (int i = 0; i < 5; i++)
            {
                Turkey.Fly();
            }
            
        }
    }

4.现在拿好你的“烤鸭”

 WildTurkey turkey = new WildTurkey();
            IDuck duck = new DuckAdaper(turkey);
            duck.Quack();
            duck.Fly();

 

上一篇:Jacoco+Tomcat在On-The-Fly模式下统计接口测试代码覆盖率


下一篇:牛客刷题之数组