《外观模式(极简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;
}
相关推荐
长弓聊编程9 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
陌小呆^O^13 分钟前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
cherub.16 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
I_Am_Me_28 分钟前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
暮色_年华30 分钟前
Modern Effective C++item 9:优先考虑别名声明而非typedef
c++
重生之我是数学王子38 分钟前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
Ai 编码助手40 分钟前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
学习前端的小z44 分钟前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
神仙别闹1 小时前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
XINGTECODE1 小时前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang