设计模式:外观模式(C++实现)

外观模式(Facade Pattern)是一种结构设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性,使得客户端只需要与外观对象交互,而不需要直接与子系统中的对象进行交互。
以下是一个简单的C++外观模式的示例:

#include 

// 子系统类A
class SubsystemA
{
public:
    void operationA()
    {
        std::cout << "Subsystem A operation" << std::endl;
    }
};

// 子系统类B
class SubsystemB
{
public:
    void operationB()
    {
        std::cout << "Subsystem B operation" << std::endl;
    }
};

// 外观类
class Facade
{
private:
    SubsystemA *subsystemA;
    SubsystemB *subsystemB;

public:
    Facade()
    {
        subsystemA = new SubsystemA();
        subsystemB = new SubsystemB();
    }
    ~Facade()
    {
        delete subsystemA;
        delete subsystemB;
        subsystemA = nullptr;
        subsystemB = nullptr;
    }
    void operation()
    {
        subsystemA->operationA();
        subsystemB->operationB();
    }
};

int main()
{
    Facade facade;
    facade.operation();
    return 0;
}

运行结果:

Subsystem A operation
Subsystem B operation

在上述示例中,SubsystemA和SubsystemB是子系统类,分别实现了子系统的一些操作。Facade是外观类,它持有子系统类的对象,并提供了一个统一的接口operation()用于访问子系统的操作。
在main()函数中,创建了一个外观类facade对象。通过调用外观类的operation()方法,实现了访问子系统类的操作。客户端只需要与外观对象交互,而不需要直接与子系统类进行交互。
通过外观模式,可以简化客户端与子系统之间的交互,提供了一个统一的接口,隐藏了子系统的复杂性。外观模式可以提高代码的可维护性和可读性,同时也可以降低客户端与子系统之间的耦合度。

你可能感兴趣的:(设计模式,设计模式,外观模式,c++)