0
点赞
收藏
分享

微信扫一扫

jupyterlab 创建新环境的问题 | notebook用新kernel运行命令没有反应 | 新核显示正在连接

                                    设计模式(分类)        设计模式(六大原则)   

    创建型(5种)        工厂方法         抽象工厂模式        单例模式        建造者模式        原型模式

    结构型(7种)        适配器模式        装饰器模式        代理模式        ​​​​​​外观模式      桥接模式        组合模式       享元模式

    行为型(11种)       策略模式        模板方法模式        观察者模式        迭代器模式        责任链模式        命令模式

                                   备忘录模式          状态模式          访问者模式        中介者模式    


外观模式(Facade Pattern)是一种结构型设计模式,其目的是为子系统提供一个统一的、更高级别的接口,使得客户端能够更容易地与子系统进行交互,而不必了解子系统的内部细节。外观模式通过创建一个外观类(Facade),封装了子系统中的复杂接口或多个子系统接口,提供一个更简洁、更易于使用的接口给客户端,从而降低了客户端与子系统之间的耦合度。

模式结构

外观模式通常包含以下角色:

工作原理

优缺点

优点
缺点

适用场景

代码示例(以Java为例)

// 子系统类
class SubsystemA {
    public void operation() {
        System.out.println("Subsystem A performing operation.");
    }
}

class SubsystemB {
    public void operation() {
        System.out.println("Subsystem B performing operation.");
    }
}

class SubsystemC {
    public void operation() {
        System.out.println("Subsystem C performing operation.");
    }
}

// 外观类
class Facade {
    private SubsystemA subsystemA;
    private SubsystemB subsystemB;
    private SubsystemC subsystemC;

    public Facade() {
        subsystemA = new SubsystemA();
        subsystemB = new SubsystemB();
        subsystemC = new SubsystemC();
    }

    public void performComplexOperation() {
        System.out.println("Starting complex operation...");
        subsystemA.operation();
        subsystemB.operation();
        subsystemC.operation();
        System.out.println("Complex operation completed.");
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.performComplexOperation();
    }
}

在这个Java示例中:

代码示例(以Python为例)

# 子系统类
class SubsystemA:
    def operation(self):
        print("Subsystem A performing operation.")

class SubsystemB:
    def operation(self):
        print("Subsystem B performing operation.")

class SubsystemC:
    def operation(self):
        print("Subsystem C performing operation.")

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

    def perform_complex_operation(self):
        print("Starting complex operation...")
        self.subsystem_a.operation()
        self.subsystem_b.operation()
        self.subsystem_c.operation()
        print("Complex operation completed.")

# 客户端代码
def main():
    facade = Facade()
    facade.perform_complex_operation()

if __name__ == "__main__":
    main()

 在这个Python示例中:

举报

相关推荐

0 条评论