zoukankan      html  css  js  c++  java
  • 常见的设计模式(python )———适配器模式

    图解:

    图片地址

    上码

     1 """
     2    适配器:B类想使用->A类提供的接口,但A,B接口并不统一
     3    此时就需要一个翻译(适配器),
     4    适配器前提:不改变A,B类的源码,代码规范(开闭原则)
     5    作用:承接(实现)A类接口,抛出接口给B类使用
     6    图解:A类 ->  适配器(翻译)—> B类
     7    ps:有点抽象,当实际运用的时候很过问题就能迎刃而解
     8 """
     9 import abc
    10 
    11 
    12 class A(metaclass=abc.ABCMeta):
    13     @abc.abstractmethod
    14     def desc(self):
    15         print("A抽象类描述")
    16 
    17     @abc.abstractmethod
    18     def make_up(self):
    19         ...
    20 
    21 
    22 class B(metaclass=abc.ABCMeta):
    23     @abc.abstractmethod
    24     def desc(self):
    25         ...
    26 
    27 
    28 class Xian(A):
    29     """现有插板"""
    30 
    31     def desc(self):
    32         print("这是一个欧洲插板")
    33 
    34     def func(self):
    35         print("功能:供电")
    36 
    37 
    38 class ChinaCa(B):
    39     def desc(self):
    40         print("中国插头")
    41 
    42 
    43 class Spq(Xian):
    44     """适配器"""
    45 
    46     def __init__(self, obj):
    47         """obj,B类对象"""
    48         self.obj = obj
    49         pass
    50 
    51     def desc(self):
    52         self.obj.desc()
    53 
    54     def func(self):
    55         """经过适配器适配"""
    56         super().func()
    57         ...
    58 
    59 
    60 if __name__ == "__main__":
    61     # 实例化插头对象
    62     my_ca = ChinaCa()
    63     # 将插头对象放入适配器
    64     spq = Spq(my_ca)
    65     # 调用适配器方法
    66     spq.desc()
    67     spq.make_up()
  • 相关阅读:
    select选中值传递到后台action中
    select into from 与insert into select from区别
    存储过程
    layer
    下拉框两级联动
    无限纠结——Zedboard上跑ubuntu详解
    静态时序分析SAT
    设计模式-(构型模式)
    内存断点调试的原理
    C语言中使用静态函数的好处
  • 原文地址:https://www.cnblogs.com/jum-bolg/p/13412246.html
Copyright © 2011-2022 走看看