装饰器模式详解

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;
}
相关推荐
YaoYuan93231 小时前
C++ 类型推导(第一部分)
c++
夜猫逐梦2 小时前
【VC】 error MSB8041: 此项目需要 MFC 库
c++·mfc
纪元A梦3 小时前
贪心算法应用:配送路径优化问题详解
算法·贪心算法
姓刘的哦3 小时前
Qt中的QWebEngineView
数据库·c++·qt
C_player_0013 小时前
——贪心算法——
c++·算法·贪心算法
SundayBear4 小时前
QT零基础入门教程
c++·qt
kyle~5 小时前
排序---插入排序(Insertion Sort)
c语言·数据结构·c++·算法·排序算法
Boop_wu5 小时前
[数据结构] 队列 (Queue)
java·jvm·算法
奔跑吧邓邓子5 小时前
【C++实战⑦】C++函数实战:从基础到项目应用
c++·实战·函数
HMBBLOVEPDX5 小时前
C++(静态函数)
开发语言·c++