常見的設計模式(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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章