设计模式—适配器模式

  今天趁热打铁继续写,今天梳理的是适配器模式。

  一如既往先给出度娘的解释:在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

 

  那么,什么意思呢?我们先从字面脑补一下什么是适配器。举一个生活中的例子:我手机没电了,我想要去充电,但是插座上的电压是220V的交流电,手机第一接头口径对不上,即便对上了,电压也是太大,频率也不对。所以我需要适配我手机的充电器,将电压转换成我需要的适合我手机的。这就是适配器出现的初衷,把用户所想要的和现实的类串接起来,已达到适配的目的。

 

  但是适配器模式如果实现起来,他的方式多样。首先我们可以同时构造普通目标类(电脑充电模式)和适配器类(手机充电模式),让适配器同时继承适配器类和普通目标类(python,C++可以多重继承,java继承接口)。这样当我只有一个电源口的时候,我想给电脑充电就调用适配器类中的普通目标类的方法。如果我想给手机充电我就调用适配器类的方法。这一个例子的类图如下:

                                                      

 

  在python中一般用到了第二种方式,是用委托的方式。什么意思呢?这个方式叫做适配器对象。它不是使用多继承或继承再实现的方式,而是使用直接关联。同适配器类一样给出关于适配器类的类图:

                                                      

 

 

  最后也要动动手,编一下看看~给出Python的一种实现:

class target:

    def service(self):
        pass

class adapter(target):

    def __init__(self,adaptee):
        self.adaptee=adaptee

    def service(self):
        self.adaptee.service()

class adaptee:

    def service(self):
        print 'service in different way~'


if __name__=='__main__':

    my_requests=adapter(adaptee())
    my_requests.service()

  是不是很简单呢~哈哈自己也试一试吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值