• 适配器模式


    模式说明

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

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

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

    模式结构图

    程序示例

    说明:要被适配的日志类,两个派生类(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

  • 相关阅读:
    File Size(4.12)
    Ownership of New Files and Directories(4.6)
    Changing User IDs and Group IDs & How saved setuserid works (8.11)
    Windows 下硬盘安装linux 系统
    access Function(4.7)
    File Access Permissions(4.5)
    link, unlink, remove, and rename Functions(4.15)
    文件特殊权限: SUID, SGID, SBIT
    ASP.NET与DreamweaverMx结合
    sqlserver的几个函数要记录
  • 原文地址:https://www.cnblogs.com/cotton/p/3931101.html
Copyright © 2020-2023  润新知