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

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

#include <iostream>

// 子系统类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()方法,实现了访问子系统类的操作。客户端只需要与外观对象交互,而不需要直接与子系统类进行交互。
通过外观模式,可以简化客户端与子系统之间的交互,提供了一个统一的接口,隐藏了子系统的复杂性。外观模式可以提高代码的可维护性和可读性,同时也可以降低客户端与子系统之间的耦合度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wydxry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值