装饰器模式详解

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;
}
相关推荐
2401_891482173 分钟前
C++中的事件驱动编程
开发语言·c++·算法
sw1213897 分钟前
C++与Rust交互编程
开发语言·c++·算法
Huyuejia8 分钟前
self-attention代码
算法
2401_8579182911 分钟前
模板编译期机器学习
开发语言·c++·算法
放飞自我的Coder14 分钟前
【动态规划解题思路】
算法·动态规划
2403_8355684716 分钟前
多平台UI框架C++开发
开发语言·c++·算法
yunyun3212318 分钟前
C++中的适配器模式
开发语言·c++·算法
AI_Ming20 分钟前
注意力机制拓展-大模型知识点(程序员转行AI大模型学习)
算法·ai编程
朗迹 - 张伟20 分钟前
UE5 C++学习笔记
c++·学习·ue5
扶摇接北海17621 分钟前
洛谷:P5732 【深基5.习7】杨辉三角
数据结构·c++·算法