作者简介

211工程院校贵州大学管理学院硕士研究生、互联网金融行业资深DevOps研发工程师. 曾在国内多家知名互联网公司 平安科技、微众银行、顺丰科技、魅族任职. 具有多年国内一线互联网公司自动化运维平台设计与开发经验。
OOP设计模式Python实现
结构型模式--桥接模式
前言:
结构型模式用于处理系统中不同实体间的关系。桥接模式(Bridge Pattern)将代码的抽象部分与实现部分相分离,使二者都可以独立地变化,进而将系统从多种维度分类。桥接模式将各维度抽象出来,各维度独立变化,之后可通过聚合,将各维度组合起来,减少了各维度间的耦合。
已知汽车在公路上行驶,公路分为街道(Street)与高速公路(SpeedWay)两类,汽车分为轿车Car和公交车Bus两类,各种类型的车可以在各种类型的公路上行驶。这种当一种事物可在多种维度上变化时,如果为每一种可能创建一个子类,则每增加一个维度就需要相应的增加多个类,这会造成类数量的激增。若使用桥接模式,使用类聚合而非继承的方式,可有效缓解该问题,并增强代码的可扩展性。


输出:

以上为隔壁老王的代码,虽然可以实现需求但是扩展性相对较差。此时如果增加一个维度,表示不同的人驾驶不同的车在不同的路上行驶,在上述代码中加入以下代码。如下:


输出:





输出:

写在最后:
桥接模式与装饰器模式比较类似,相同点在于二者都可以处理类扩散的情况。不同点在于在桥接模式中,没有装饰者和被装饰者的主次区别,桥接和被桥接者是平等的,不用继承自同一个父类;桥接模式不用使用同一个接口,装饰模式用同一个接口装饰,接口在父类中定义。
4
结束语
如果本文可以对您的工作学习带来帮助,请扫描左侧赞赏码以资鼓励作者;文章勘误请扫描右侧二维码联系作者。


文章转载自稻壳编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




