《外观模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式(极简c++版)》-CSDN博客

模式说明
  • 方案: 外观模式提供了一个统一的接口,简化了一组复杂子系统的访问方式。
  • 优点:
    • 将客户端与子系统解耦,降低了复杂性。
    • 提高了代码的灵活性和可维护性。
  • 缺点:
    • 可能导致外观类过于庞大,承担了过多的责任。
    • 增加了系统的抽象层,有时会影响性能。
本质思想:外观模式的本质思想是为一组复杂的子系统提供一个简单的接口,隐藏其复杂性,使得客户端可以更轻松地使用。
实践建议:只对使用十分高频,且逻辑链路复杂,且使用者不需要关心内部逻辑的场景使用

示例代码

cpp 复制代码
#include <iostream>

// 子系统类:鸟
class Bird {
public:
    void fly() {
        std::cout << "Bird is flying." << std::endl;
    }

    void sing() {
        std::cout << "Bird is singing." << std::endl;
    }
};

// 外观类:鸟操作
class BirdFacade {
private:
    Bird bird;

public:
    void performActions() {
        bird.fly();
        bird.sing();
    }
};

int main() {
    BirdFacade birdFacade;
    birdFacade.performActions(); // 输出: Bird is flying. Bird is singing.
    return 0;
}
相关推荐
第九序言T8 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Sakura_j_h_9 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
龙亘川9 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人9 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas10010 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真11 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy111 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫1212 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切12 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog13 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友