装饰器模式详解

8.9.6 装饰器模式

​ 装饰器模式是一种结构型模式,主要是给一个类添加更多功能;

示例代码:

c++ 复制代码
#include <iostream>
#include <string>

// 抽象基类:文本修饰器
class TextDecorator {
public:
    virtual std::string decorate(const std::string& text) const = 0;
};

// 具体修饰器:加粗修饰器
class BoldDecorator : public TextDecorator {
public:
    std::string decorate(const std::string& text) const override {
        return "<b>" + text + "</b>";
    }
};

// 具体修饰器:斜体修饰器
class ItalicDecorator : public TextDecorator {
public:
    std::string decorate(const std::string& text) const override {
        return "<i>" + text + "</i>";
    }
};

int main() {
    // 原始文本
    std::string text = "Hello, world!";

    // 创建修饰器对象
    TextDecorator* boldDecorator = new BoldDecorator();
    TextDecorator* italicDecorator = new ItalicDecorator();

    // 使用装饰器修饰文本
    std::string boldText = boldDecorator->decorate(text);
    std::string italicText = italicDecorator->decorate(text);

    // 显示修饰后的文本
    std::cout << "Bold Text: " << boldText << std::endl;
    std::cout << "Italic Text: " << italicText << std::endl;

    // 释放内存
    delete boldDecorator;
    delete italicDecorator;

    return 0;
}
相关推荐
NAGNIP7 小时前
一文搞懂树模型与集成模型
算法·面试
NAGNIP7 小时前
万字长文!一文搞懂监督学习中的分类模型!
算法·面试
技术狂人1687 小时前
工业大模型工程化部署实战!4 卡 L40S 高可用集群(动态资源调度 + 监控告警 + 国产化适配)
人工智能·算法·面试·职场和发展·vllm
D_FW7 小时前
数据结构第六章:图
数据结构·算法
a程序小傲7 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
HellowAmy8 小时前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
自学不成才8 小时前
深度复盘:一次flutter应用基于内存取证的黑盒加密破解实录并完善算法推理助手
c++·python·算法·数据挖掘
June`8 小时前
全排列与子集算法精解
算法·leetcode·深度优先
徐先生 @_@|||8 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构