悠悠楠杉
网站页面
cpp
// 具体装饰器 - 扩展正文内容
class BodyExpanderDecorator : public ArticleDecorator {
int wordCount;
public:
BodyExpanderDecorator(ArticleComponent* comp, int count)
: ArticleDecorator(comp), wordCount(count) {}
std::string generate() const override {
std::string baseContent = component->generate();
// 模拟扩展内容生成
std::string expandedContent = "\n\n扩展正文内容...";
for (int i = 0; i < wordCount / 100; ++i) {
expandedContent += " 这是深度扩展的段落内容,增加了文章的丰富性和可读性。";
}
return baseContent + expandedContent;
}
};
cpp
int main() {
// 创建基础文章
ArticleComponent* article = new BasicArticle();
// 动态添加功能
article = new TitleDecorator(article, "C++装饰器模式深度解析");
article = new KeywordsDecorator(article, {"设计模式", "装饰器", "C++", "扩展功能"});
article = new DescriptionDecorator(article, "本文详细介绍了C++中装饰器模式的实现及其应用场景");
article = new BodyExpanderDecorator(article, 1000);
// 生成最终文章
std::cout << article->generate() << std::endl;
// 清理内存
delete article;
return 0;
}
装饰器模式为C++开发者提供了一种强大而灵活的方式来实现功能的动态扩展。通过将核心功能与装饰功能分离,我们可以构建出更加模块化、可维护的系统。在实际开发中,合理运用装饰器模式可以显著提高代码的复用性和扩展性,特别是在需要频繁添加或移除功能的场景下。