首页 > 编程语言 >Python设计模式-17-外观模式

Python设计模式-17-外观模式

时间:2023-06-16 18:57:46浏览次数:65  
标签:subsystem do 外观 17 Python self something 设计模式 子系统

外观模式是一种结构型设计模式,它为复杂的子系统提供了一个简单的接口,从而隐藏了子系统的复杂性。外观模式通常包括以下几个角色:

  • 外观(Facade):提供了一个简单的接口,用于访问子系统中的一组接口。

  • 子系统(Subsystem):实现了子系统的功能,并处理外观对象指派的任务。

下面是一个简单的 Python 示例,演示了如何使用外观模式:

class SubsystemA:
    def do_something(self):
        print('SubsystemA: Doing something.')

class SubsystemB:
    def do_something(self):
        print('SubsystemB: Doing something.')

class SubsystemC:
    def do_something(self):
        print('SubsystemC: Doing something.')

class Facade:
    def __init__(self):
        self.subsystem_a = SubsystemA()
        self.subsystem_b = SubsystemB()
        self.subsystem_c = SubsystemC()

    def do_something(self):
        self.subsystem_a.do_something()
        self.subsystem_b.do_something()
        self.subsystem_c.do_something()

facade = Facade()
facade.do_something()

在上面的示例中,我们定义了三个子系统 SubsystemASubsystemBSubsystemC,它们实现了子系统的功能,并处理外观对象指派的任务。然后,我们定义了一个外观 Facade,它提供了一个简单的接口 do_something(),用于访问子系统中的一组接口。在外观对象的 do_something() 方法中,我们依次调用了三个子系统的 do_something() 方法,从而实现了一组复杂的操作。

在使用外观模式时,我们可以通过创建一个外观对象来隐藏子系统的复杂性,从而提供一个简单的接口给客户端使用。在上面的示例中,我们创建了一个外观对象 facade,并调用了它的 do_something() 方法,从而实现了一组复杂的操作。需要注意的是,外观模式可以帮助我们将子系统的复杂性隐藏起来,从而提高代码的可维护性和可扩展性。

标签:subsystem,do,外观,17,Python,self,something,设计模式,子系统
From: https://www.cnblogs.com/superhin/p/17486314.html

相关文章

  • Python设计模式-18-中介模式
    中介模式是一种行为型设计模式,它允许对象之间通过一个中介对象进行通信,从而减少对象之间的直接耦合。中介模式通常包括以下几个角色:中介者(Mediator):定义了一个接口,用于与各个同事对象通信,并协调它们之间的交互。具体中介者(ConcreteMediator):实现了中介者定义的接口,并协调各个......
  • Python设计模式-19-备忘录模式
    备忘录模式是一种行为型设计模式,它允许我们在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。备忘录模式通常包括以下几个角色:发起人(Originator):定义了一个接口,用于创建备忘录对象和恢复对象状态。备忘录(Memento):存储发起人对象的内部状态。管理......
  • Python设计模式-20-迭代器模式
    迭代器模式是一种行为型设计模式,它允许我们按照顺序访问一个聚合对象中的元素,而不需要暴露该对象的内部表示。迭代器模式通常包括以下几个角色:迭代器(Iterator):定义了一个接口,用于按照顺序访问聚合对象中的元素。具体迭代器(ConcreteIterator):实现了迭代器定义的接口,并维护了当......
  • Python设计模式-21-解释器模式
    解释器模式是一种行为型设计模式,它定义了一种语言,用于解释和执行特定的任务。解释器模式通常包括以下几个角色:抽象表达式(AbstractExpression):定义了一个接口,用于解释和执行特定的任务。终结符表达式(TerminalExpression):实现了抽象表达式定义的接口,并表示语言中的终结符。......
  • Python设计模式-22-模板模式
    模板模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板模式通常包括以下几个角色:抽象类(AbstractClass):定义了一个算法的骨架,其中包含一些抽象方法,用于延迟到子类中实现。具体类(ConcreteClass):实现了抽象类定义的接口,并实现了其中的抽象方法......
  • Python设计模式-06-代理模式
    代理模式是一种结构型设计模式,它提供了一个代理对象来控制对另一个对象的访问。代理模式通常包括以下几个角色:抽象主题(Subject):定义了代理对象和真实对象的公共接口,可以是一个抽象类或接口。真实主题(RealSubject):定义了代理对象所代表的真实对象。代理(Proxy):持有一个真实对象的......
  • Python设计模式-07-桥接模式
    桥接模式是一种结构型设计模式,它将抽象部分和实现部分分离开来,使它们可以独立地变化。桥接模式通常包括以下几个角色:抽象部分(Abstraction):定义了抽象部分的接口,并持有一个实现部分的引用。扩展抽象部分(RefinedAbstraction):扩展了抽象部分的接口,可以包含一些额外的行为。实现部......
  • 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......