常见的设计模式(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()