开篇之适配器

   这两天,听到有人讨论适配器模式,讨论的是对象适配器和类适配器。他们对着Adaptee和Adapter大声讨论着,本来想发表自己的想法,结果被他们大声盖住,只能回家写出自己的想法,并且从他们的讨论中更加深入的理解了适配器是什么。

       client和Adaptee之前是什么关系?多对多。一个写好的client处理程序,在后续可能会有需要新的处理对象,而这些处理对象不符合client的接口需要,那么就需要对些Adaptee进行适配,适配成满足client需要的Adapter。这是一个client对多个Adaptee的情况。也有多个client对一Adaptee的情况,因为多个client都可能需要去执行Adaptee,不同的client需要不同的接口对象,那么这个Adaptee就会被适配成不同的接口,这是多个client对一个Adaptee的情况。
   首先,适配器是为client服务的,是先有client,再有Adapter,或者说,是先从client的角度看待,发现Adaptee不能满足接口的统一性,需要Adapter。而Adaptee可能在任何Adapter之前的任何时候出现都可以。client是我们的代码,而且是已经存在的代码,里面的实现方式是:

      class client{
            Adapter adapter;
            void method(){
                adapter.methodAdapter();
            }
       }

 

    请注意,这个client里面持有的Adapter是指一个接口或者抽象,并不是说就是适配器。因为我们有client的时候,还不需要适配器。

   在client接口一定的情况下,希望client也能去执行adaptee的methodAdaptee方法,但是client只认识adapter的methodAdapter方法,怎么办呢?这个时候,适配器隆重出场了。

class   适配器 implements Adapter{
  
   Adaptee adaptee;

  void methodAdapter(){

   adaptee.methodAdaptee();

   }    
  
 
}

   通过这个转换,我们就可以把Adaptee包裹成Adapter,然后送给client。client发现这是个Adapter,具有methodAdapter方法,从而去执行。但是由于内部实际包装了Adaptee的方法,从而达成了执行Adaptee的方法的目标。

  


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值