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

 

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