当前位置: 首页 > news >正文

【设计模式】4.装饰器模式

装饰器模式,就是动态的给一个对象增加一些职责。

UML

在这里插入图片描述

code

#include "3.h"int main()
{// 有点类似于压栈的感觉, 显示人名 + 装饰1 + 装饰2 + 装饰3 => 输出 装饰321的人Person* person = new Person("syc");Tshrit* tshrit = new Tshrit();tshrit->decorate(person);Shoes* shoes = new Shoes();shoes->decorate(tshrit);Tie* tie = new Tie();tie->decorate(shoes);tie->show();return 0;
}
#pragma once
#include <string>
#include <iostream>
// 形象类
class ICharacter
{
public:virtual void show() = 0;
private:
};// 人
class Person : public ICharacter
{
public:Person(const std::string& name) : name(name) {}void show() override{std::cout << "装扮的" << this->name;}
private:std::string name;
};// 装饰类
class Decorator : public ICharacter
{
public:void decorate(ICharacter* character){this->character = character;}void show() override{character->show();}protected:ICharacter* character;
};// Tshrit
class Tshrit : public Decorator
{
public:void show() override{std::cout << "T Shrit";Decorator::show();}
private:
};// 鞋子
class Shoes : public Decorator
{
public:void show() override{std::cout << "鞋子";Decorator::show();}
};// 领带
class Tie : public Decorator
{
public:void show() override{std::cout << "领带";Decorator::show();}
};
http://www.xdnf.cn/news/1234909.html

相关文章:

  • ThinkPHP5x,struts2等框架靶场复现
  • LLM - 智能体工作流设计模式
  • 【嵌入式硬件实例】-555定时器IC的负电压发生器
  • 设计原则和设计模式
  • 【C++ 初级工程师面试--4】形参带默认值的函数,特点,效率,注意事项
  • 秋招笔记-8.3
  • PHP面向对象编程与数据库操作完全指南-下
  • C语言数据结构(7)贪吃蛇项目2.贪吃蛇项目实现
  • 云轴科技ZStack AI翻译平台建设实践-聚焦中英
  • React中的Hooks
  • JavaEE初阶第十三期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十一)
  • 设计模式 - 组合模式:用树形结构处理对象之间的复杂关系
  • uniapp 跨端开发
  • 8.3 滑窗 |栈|阶乘判断
  • 什么是列存储(Columnar Storage)?深度解析其原理与应用场景
  • 【领域热点】【Vue】Vue 与 WebAssembly:前端性能优化的黄金搭档
  • [创业之路-535]:软件需要原型验证、产品需要原型验证、商业模式也需要原型验证
  • 实战解析:编程式事务在实际开发中的典型应用场景
  • Linux系统编程Day4-- Linux常用工具(yum与vim)
  • vulhub-corrosion2靶机
  • 1.8 axios详解
  • Unix 发展史概览
  • ClickHouse Windows迁移方案与测试
  • 一键安装RabbitMQ脚本
  • 电脑声音标志显示红叉的原因
  • 决策树的实际案例
  • Python-初学openCV——图像预处理(六)
  • Linux网络编程 ---五种IO模型
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现各类垃圾的分类检测识别(C#代码UI界面版)
  • 基于MBA与BP神经网络分类模型的特征选择方法研究(Python实现)