适配器模式

  适配器(Adapter) 模式: 将一个类的接口转换成客户希望的另外一个接口。 Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

   当系统的数据和行为都正确, 但接口不符时, 我们应该考虑用适配器, 目的是使控制范围之外的一个原有对象与某个接口匹配。 适配器模式主要应用于希望复用一些现存的类, 但是接口又与复用环境要求不一致的情况。

   * 适配器模式有两种模式 : 1、类适配器模式 (c++ 语言支持, Java、c#等语言不支持多继承,所有不支持此模式) 2、对象适配器模式(本文所讲模式) 。

   

    Targer 类:这是客户所期待的接口。目标可以是具体的或抽象的类, 也可以是接口。

  

class Target {

        public virtual void Request(){

        Console.WriteLine("普通请求!");
        }
         }
    Adaptee (需要适配的类): 

          

class Adaptee{
          public void SpecificRequest(){

          Console.WriteLine("特殊请求!");
          }
            }

    Adapter 通过在内部包装一个Adapter 对象把原接口转换成目标接口

   

 class Adapter{

              private Adaptee adaptee = new Adaptee();
               public override void Request(){

               adaptee.SpecificRequest();
               }
               }

 客户端代码如下

  

static void Main(string args[]){

       Traget target = new Adapter();
       target.Request();
       Console.Read();
    }

何时使用适配器模式:

  使用一个已经存在的类,但如果它的接口, 也就是它的方法和你的要求不相同时, 就应该考虑用适配器模式。

  两个类所做的事情相同或相似, 但是具有不同的接口时要使用它。 客户代码可以统一调用统一接口,这样可以更简单、更紧凑、更直接。

  要在双方都不太容易修改时再使用适配器模式适配。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值