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

适配器

时间:2019-03-20 14:28:49      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:本质   specific   适配   request   nbsp   spec   使用   形式   OLE   

说到适配器大家都比较熟悉,在现实生活中,家电是两孔的,插座是三孔,怎么把两孔和三孔的匹配上呢,这时候适配器就派上用场了,直接上代码:

两孔的:

public abstract class TwoHole{

  public void SpecificRequest(){

      Console.WriteLine("我是两孔的插座");

  }

}

三孔的:

public interface IThreeHole{

  void Request();

}

适配器:

public class AdapterHole: TwoHole, IThreeHole

{

  public void Request(){

     this.SpecificRequest();

  }

}

 

// 使用适配器

IThreeHole threeHole=new AdapterHole();

threeHole.Request();

 

以上就是适配器模式了,适配器模式有两种,一种是类的适配器(通过继承的方式),另一种是对象适配器(通过包含对象),上面采用的是继承形式的,下面上包含对象适配器模式的代码:

public class ThreeHole
    {
        // 客户端需要的方法
        public virtual void Request()
        {
            // 可以把一般实现放在这里
        }
    }
public class TwoHole{
  
public void SpecificRequest()
        {
            Console.WriteLine("我是两个孔的插头");
        }

}
// 适配器
public class Adapter:ThreeHole{
public TwoHole twoholeAdaptee = new TwoHole();
/// <summary>
        /// 实现三个孔插头接口方法
        /// </summary>
        public override void Request()
        {
            twoholeAdaptee.SpecificRequest();
        }

}

// 使用适配器

IThreeHole threeHole=new AdapterHole();

threeHole.Request();

 

明白了吧,适配器就是这么简单,就是把目标对象包装一下,同时对外提供可访问的接口,本质上还是访问目标对象的方法

适配器

标签:本质   specific   适配   request   nbsp   spec   使用   形式   OLE   

原文地址:https://www.cnblogs.com/1laowang/p/10564613.html

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