设计模式-结构型模式-外观模式

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。DP

复制代码
首先,定义子系统的各个组件接口和具体实现类:
// 子系统组件接口
public interface SubsystemA {
    void operationA();
}

public interface SubsystemB {
    void operationB();
}

public interface SubsystemC {
    void operationC();
}

// 子系统组件的具体实现
public class ConcreteSubsystemA implements SubsystemA {
    @Override
    public void operationA() {
        System.out.println("Subsystem A operation");
    }
}

public class ConcreteSubsystemB implements SubsystemB {
    @Override
    public void operationB() {
        System.out.println("Subsystem B operation");
    }
}

public class ConcreteSubsystemC implements SubsystemC {
    @Override
    public void operationC() {
        System.out.println("Subsystem C operation");
    }
}
接下来,创建外观类,它包含了对子系统中各个组件的引用,并提供了简化后的接口:
public class Facade {
    private SubsystemA subsystemA;
    private SubsystemB subsystemB;
    private SubsystemC subsystemC;

    public Facade() {
        subsystemA = new ConcreteSubsystemA();
        subsystemB = new ConcreteSubsystemB();
        subsystemC = new ConcreteSubsystemC();
    }

    // 客户端调用的简单接口
    public void operation() {
        subsystemA.operationA();
        subsystemB.operationB();
        subsystemC.operationC();
    }

    //TODO 客户机调用的接口可以根据不同的情况,对子系统的方法进行组合
}
最后,创建客户端代码来演示如何使用外观类:
public class FacadePatternExample {
    public static void main(String[] args) {
        Facade facade = new Facade();

        // 客户端通过外观类来调用子系统操作
        facade.operation();
    }
}
相关推荐
Java后端的Ai之路11 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
码匠许师傅12 小时前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式
2401_8685347820 小时前
网规备考_2.4 路由协议
c++·设计模式
cpp_learner1 天前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
c++·设计模式
码匠许师傅1 天前
【设计模式精讲】23.备忘录模式(Memento)
c++·设计模式·软件工程·uml·备忘录模式
新知图书2 天前
第8章 多智能体协同
人工智能·设计模式·智能体
京师20万禁军教头2 天前
39面向对象(高级)-设计模式
java·开发语言·设计模式
新知图书2 天前
3.5 智能体设计模式1:反应式智能体与自动导航案例
人工智能·设计模式·智能体
码匠许师傅2 天前
【设计模式精讲】21.迭代器模式(Iterator)
c++·设计模式·rpc·迭代器模式·软件工程·uml
Carl_奕然3 天前
【智能体】Agent的四种设计模式之:React(2026最新版)
javascript·人工智能·python·react.js·设计模式·语言模型