圖解:
上碼
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()