zoukankan      html  css  js  c++  java
  • 适配器模式

    适配器模式

     

    模式说明

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

    在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配器,它所包装的对象就是适配者。

    适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适配者的相应的接口的引用。也就是说,当客户调用适配器的方法时,适配器方法内部将调用 适配者的方法,客户并不是直接访问适配者的,而是通过调用适配器方法访问适配者。因为适配器可以使互不兼容的类能够“合作愉快”。

    模式结构图

    程序示例

    说明:要被适配的日志类,两个派生类(FileLog和EventLog);客户期望访问的接口类;适配器类(继承客户的期望接口,内部调用被适配的日志类)

    代码:

    复制代码
     1 class ILogAdaptee(object):
     2     def write(self):
     3         pass
     4 
     5 class FileLog(ILogAdaptee):
     6     def write(self):
     7         print 'file log'
     8 
     9 class EventLog(ILogAdaptee):
    10     def write(self):
    11         print 'event log'
    12 
    13 class ITarget(object):
    14     def writelog(self):
    15         pass
    16 
    17 class LogAdaptor(ITarget):
    18     adaptee=ILogAdaptee()
    19     def __init__(self,adaptee):
    20         self.adaptee = adaptee
    21 
    22     def writelog(self):
    23         self.adaptee.write()
    24 
    25 if __name__=='__main__':
    26     log = EventLog()
    27     adapter = LogAdaptor(log)
    28     adapter.writelog()
    复制代码

    运行结果:

    参考来源:

    http://www.cnblogs.com/chenssy/p/3679190.html

    http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

    http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html

  • 相关阅读:
    PS 修复画笔
    PS 魔棒工具、仿制图章
    PS选区的应用
    PS界面介绍
    火狐浏览器任务栏设置默认 隐私模式开启
    [CSS] Using inline-grid to gain easy control over gap and size
    [AWS] Presign url for S3
    [CSS] Customer focus / disabled style for select element
    [CSS] Using single grid-template-area and justify-self to select arrow down icon in select
    [CSS 3] Using CSS attribute selector
  • 原文地址:https://www.cnblogs.com/Siny0/p/11156032.html
Copyright © 2011-2022 走看看