64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
"""
|
||
实例
|
||
汤宝宝有一个苹果手机,手机原配lightning接口,为了连接Type-C接口的充电器,他需要一个转换器(适配器)来实现这个功能。
|
||
"""
|
||
|
||
from abc import ABC, abstractmethod
|
||
|
||
|
||
# 充电器类
|
||
class Charger:
|
||
def connect(self, type_c: "TypeCInterface"):
|
||
type_c.type_c_charging()
|
||
print("手机开始充电!\n")
|
||
|
||
|
||
# Type-C充电接口的接口
|
||
class TypeCInterface(ABC):
|
||
@abstractmethod
|
||
def type_c_charging(self):
|
||
pass
|
||
|
||
|
||
# 具体实现类
|
||
|
||
|
||
class TypeC(TypeCInterface):
|
||
def type_c_charging(self):
|
||
print("Type-C接口连接中...")
|
||
|
||
|
||
class Lightning:
|
||
def lightning_charging(self):
|
||
print("Lightning接口连接中...")
|
||
|
||
|
||
# 适配器类
|
||
class LightningToTypeCAdapter(TypeCInterface):
|
||
def __init__(self, lightning: Lightning):
|
||
self.lightning = lightning
|
||
|
||
def type_c_charging(self):
|
||
print("Type-C适配器转换中...")
|
||
self.lightning.lightning_charging()
|
||
|
||
|
||
def main():
|
||
print("============= 适配器模式 =============")
|
||
charger = Charger()
|
||
|
||
print("使用Type-C充电器给小米手机充电:")
|
||
typec = TypeC()
|
||
charger.connect(typec)
|
||
|
||
print("使用Lightning接口转换器给苹果手机充电:")
|
||
lightning = Lightning()
|
||
adapter = LightningToTypeCAdapter(lightning)
|
||
charger.connect(adapter)
|
||
|
||
print("=========== 适配器模式结束 ===========")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|