码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(七)——适配器模式

时间:2018-12-13 23:25:38      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:接口   ada   color   ack   deb   class   对象适配器   多重继承   不兼容   

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

这个模式可以创建适配器进行接口转换,让不兼容的接口变成兼容。

这个模式主要有四个部分:

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

 

设计模式(七)——适配器模式

标签:接口   ada   color   ack   deb   class   对象适配器   多重继承   不兼容   

原文地址:https://www.cnblogs.com/dlvguo/p/10106272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!