Python 官方文档:入门教程 => 点击学习
目录一、桥接模式二、应用场景三、代码示例一、桥接模式 桥接模式,希望能够将一个事物的两个维度分离(解耦),使其都可以独立地变化,并通过桥梁连接起来。 (类)抽象部分(Abstract
桥接模式,希望能够将一个事物的两个维度分离(解耦),使其都可以独立地变化,并通过桥梁连接起来。
桥接模式的核心思想是通过封装,将一个抽象类的相关参数和方法分别作为桥接类的属性,这样在实例化桥接类的对象后,通过修改桥接类的属性,便可以实现抽象和实现之间的独立变化。
优点:
缺点:
实现角色:
Abstraction
)Refined Abstraction
)Implementor
)Concrete Implementor
)import abc
# 抽象
class Mobile(metaclass=abc.ABCMeta):
def __init__(self, cover):
self.cover = cover
@abc.abstractmethod
def buy(self):
pass
# 实现者
class Cover(metaclass=abc.ABCMeta):
@abc.abstractmethod
def put(self):
pass
# 细化抽象
class Xiaomi(Mobile):
def buy(self):
self.cover.put(self)
# 细化抽象
class Huawei(Mobile):
def buy(self):
self.cover.put(self)
# 细化抽象
class Iphone(Mobile):
def buy(self):
self.cover.put(self)
# 具体实现者
class YellowCover(Cover):
def put(self, mobile):
print(f"套着{self.__class__.__name__}的{mobile.__class__.__name__}")
# 具体实现者
class RedCover(Cover):
def put(self, mobile):
print(f"套着{self.__class__.__name__}的{mobile.__class__.__name__}")
# 具体实现者
class GreenCover(Cover):
def put(self, mobile):
print(f"套着{self.__class__.__name__}的{mobile.__class__.__name__}")
if __name__ == "__main__":
red_xiaomi = Xiaomi(RedCover())
red_xiaomi.buy()
green_huawei = Huawei(GreenCover())
green_huawei.buy()
red_huawei = Huawei(RedCover())
red_huawei.buy()
yellow_iphone = Iphone(YellowCover())
yellow_iphone.buy()
到此这篇关于python
设计模式中的结构型桥接模式的文章就介绍到这了,更多相关Python桥接模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python设计模式中的结构型桥接模式
本文链接: https://www.lsjlt.com/news/139194.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0