首页 > 编程语言 >Python设计模式-07-桥接模式

Python设计模式-07-桥接模式

时间:2023-06-16 18:48:01浏览次数:36  
标签:implementor 桥接 self Python abstraction 抽象 operation 设计模式 部分

桥接模式是一种结构型设计模式,它将抽象部分和实现部分分离开来,使它们可以独立地变化。桥接模式通常包括以下几个角色:

  • 抽象部分(Abstraction):定义了抽象部分的接口,并持有一个实现部分的引用。
  • 扩展抽象部分(Refined Abstraction):扩展了抽象部分的接口,可以包含一些额外的行为。
  • 实现部分(Implementor):定义了实现部分的接口,可以是一个抽象类或接口。
  • 具体实现部分(Concrete Implementor):实现了实现部分的接口,并提供具体的实现。

下面是一个简单的 Python 示例,演示了如何使用桥接模式将抽象部分和实现部分分离开来:

class Abstraction:
    def __init__(self, implementor):
        self.implementor = implementor

    def operation(self):
        self.implementor.operation_implementation()

class RefinedAbstraction(Abstraction):
    def extended_operation(self):
        print('RefinedAbstraction: Extended operation.')
        self.implementor.operation_implementation()

class Implementor:
    def operation_implementation(self):
        pass

class ConcreteImplementorA(Implementor):
    def operation_implementation(self):
        print('ConcreteImplementorA: Operation implementation.')

class ConcreteImplementorB(Implementor):
    def operation_implementation(self):
        print('ConcreteImplementorB: Operation implementation.')

implementor_a = ConcreteImplementorA()
implementor_b = ConcreteImplementorB()

abstraction_a = Abstraction(implementor_a)
abstraction_a.operation()

abstraction_b = Abstraction(implementor_b)
abstraction_b.operation()

refined_abstraction_a = RefinedAbstraction(implementor_a)
refined_abstraction_a.operation()
refined_abstraction_a.extended_operation()

refined_abstraction_b = RefinedAbstraction(implementor_b)
refined_abstraction_b.operation()
refined_abstraction_b.extended_operation()

在上面的示例中,我们定义了一个抽象部分 Abstraction,它定义了抽象部分的接口,并持有一个实现部分的引用。然后,我们定义了一个扩展抽象部分 RefinedAbstraction,它扩展了抽象部分的接口,并可以包含一些额外的行为。接下来,我们定义了一个实现部分 Implementor,它定义了实现部分的接口。最后,我们定义了两个具体实现部分 ConcreteImplementorA 和 ConcreteImplementorB,它们实现了实现部分的接口,并提供具体的实现。

在使用桥接模式时,我们可以通过创建不同的抽象部分和实现部分的组合来实现不同的行为。在上面的示例中,我们创建了两个具体实现部分 ConcreteImplementorA 和 ConcreteImplementorB,并分别将它们与抽象部分 Abstraction 和 RefinedAbstraction 进行组合,从而实现了不同的行为。需要注意的是,桥接模式可以帮助我们将抽象部分和实现部分分离开来,使它们可以独立地变化,但也可能会导致代码的复杂性增加。

标签:implementor,桥接,self,Python,abstraction,抽象,operation,设计模式,部分
From: https://www.cnblogs.com/superhin/p/17486285.html

相关文章

  • Python设计模式-08-组合模式
    模式是一种结构型设计模式,它允许我们将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式通常包括以下几个角色:组件(Component):定义了组合中所有对象的通用接口,可以是一个抽象类或接口。叶子节点(Leaf):表示组合中的叶子节点,它没有子节点。组合节点(Composite):表示组合中的......
  • Python设计模式-09-外观模式
    外观模式是一种结构型设计模式,它提供了一个简单的接口,隐藏了系统的复杂性,使得客户端可以更容易地使用系统。外观模式通常包括以下几个角色:外观(Facade):提供了一个简单的接口,隐藏了系统的复杂性,使得客户端可以更容易地使用系统。子系统(Subsystem):实现了系统的功能,但对客户端是不可......
  • 运行python -m uiautomator2 init报错AttributeError: module 'collections' has no a
    报错信息:Traceback(mostrecentcalllast):File"E:\Carte\BB\17-SiteLeadership\alte\IonelBalauta\Aryeht\Task1-Traducetotsite-ul\DoarGoogleWeb\Andreea\Meditatii\Sedinta9(2022)(EMAIL)\BEBE-PARSING-Python(fararedenumire2).p......
  • Python设计模式-10-享元模式
    享元模式是一种结构型设计模式,它通过共享对象来减少内存使用和对象创建的数量。享元模式通常包括以下几个角色:享元工厂(FlyweightFactory):负责创建和管理享元对象。享元(Flyweight):表示共享的对象,包含内部状态和外部状态。内部状态(IntrinsicState):存储在享元对象内部的状态,不会随......
  • Python设计模式-11-观察者模式
    观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它会自动通知所有观察者对象,使它们能够及时更新自己的状态。观察者模式通常包括以下几个角色:主题(Subject):定义了被观察的对象,可以有多个观察者监听它。......
  • 【Python入门教程】调取电脑摄像头并发送照片至邮箱
    ​        本博文纯属娱乐,仅供大家学习参考,不得以此侵犯他人隐私。本篇文章参考Python研究者的python窃取摄像头的图片。在这里先感谢大佬的付出,大家可以去关注一下。一、获取邮箱授权码        授权码用于调用邮箱实现邮件的发送,这里以QQ邮箱做演示,在设置的账......
  • 设计模式中一对多的观察者模式
    highlight:a11y-darktheme:smartblue最近在学习当中学到了一段话:在学一样东西的时候,可以按照它是什么,有什么用,优点是什么,缺点是什么,要怎么去使用,或者使用的时候要注意什么。我觉得这五部曲还是很有用的,能帮你快速掌握一个知识点观察者模式是什么?定义对象之间的一种一对多的关系......
  • Python设计模式-03-原型模式
    原型模式是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化类来创建新对象。原型模式通常包括以下几个角色:原型(Prototype):定义了一个克隆自身的接口,用于复制现有对象。具体原型(ConcretePrototype):实现了原型接口,负责复制自身。客户端(Client):使用原型接口来复......
  • Python设计模式-04-单例模式
    单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。单例模式通常包括以下几个角色:单例(Singleton):定义了一个静态方法或类方法,用于获取单例对象。客户端(Client):使用单例对象来完成具体的操作。下面是一个简单的Python示例,演示了如何使用单例模式创......
  • Python设计模式-05-适配器模式
    适配器模式是一种结构型设计模式,它可以将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常包括以下几个角色:目标接口(Target):定义了客户端所期望的接口,可以是一个抽象类或接口。适配器(Adapter):实现了目标接口,并持有一个被适配对象的引用,负责将客户端的请求转换成被适......