【设计模式】装饰者模式

ops/2024/10/18 18:21:16/

装饰者模式

角色和buff进行解释

步骤

  1. 角色和Buff共有一个Component,理解为有同一个操作,给予Buff里面可以填充角色。
  2. 角色有一个基类,Buff有一个基类,因为有多种Buff

理解

不是常规理解上的给角色填装Buff,角色作为主体,而是把角色放进Buff里,这里要做区分。

代码

public class Role : Component
{public override void Opration(){Debug.LogError("我是某个角色");}
}public class Buff : Component
{private Component role;public void SetComponent(Component component){role = component;}public override void Opration(){if (role != null){role.Opration();}}
}public class ZengShang : Buff
{public override void Opration(){base.Opration();Debug.LogError("增加了伤害");}
}public class JianShang : Buff
{public override void Opration(){base.Opration();Debug.LogError("减少了伤害");}
}//调用Role role = new Role();ZengShang zengShang = new ZengShang();JianShang jianShang = new JianShang();zengShang.SetComponent(role);jianShang.SetComponent(zengShang);jianShang.Opration();

http://www.ppmy.cn/ops/124756.html

相关文章

云原生后端

云原生后端 云原生后端是当今软件开发领域的一个重要概念,它代表了将软件应用程序容器化部署在云环境中,并采用微服务架构进行开发和管理的一种趋势。这种趋势的兴起,得益于云计算和微服务架构的快速发展,以及企业对高效、灵活、…

甲方安全和乙方安全的区别

信息安全工作,总会被人分成甲方和乙方,甲乙方原本只是商务层面需方和供方的代称,在安全领域,成了做公司内部安全和为客户提供安全的区别。 通常意义上,什么是甲方安全人员呢?就是在非安全业务的公司从事信…

MYSQL-windows安装配置两个或多个版本MYSQL

安装第一个mysql很简单,这里不再赘述。主要说说第二个怎么安装,服务怎么配置。 1. 从官网下载第二个MySQL并安装 一般都是免安装版了,下载解压到某个文件目录下(路径中尽量不要带空格或中文),再新建一个my.ini文件(或…

Linux 内核中USB鼠标枚举失败问题总结

一、环境: 机器平台:linux 内核版本:linux-3.4 二、问题: USB鼠标接入后报错,log显示设备无法枚举 usb 1-1: new low-speed USB device number 10 using musb-hdrc hub 1-0:1.0: unable to enumerate USB device o…

Django学习笔记之Django基础学习

Django笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录…

【WebGIS】Cesium:Viewer 初始化、地图加载与基础交互

Cesium 是一个功能强大、基于 WebGL 的开源三维地球引擎,它允许用户在浏览器中渲染高性能的三维地图和地球。本文将带领新手入门 Cesium,学习如何初始化 Cesium Viewer,加载地图和地形,了解地球的基础交互操作,并掌握如…

RISC-V知识点目录

分支预测 分支预测概述https://blog.csdn.net/zhangshangjie1/article/details/136947089?sharetypeblogdetail&sharerId136947089&sharereferPC&sharesourcezhangshangjie1&spm1011.2480.3001.8118分支指令的方向预测https://blog.csdn.net/zhangshangjie1/a…

AJAX 和 fetch到底是什么

文章目录 1. **AJAX 是什么?**示例: 2. **fetch 是什么?**示例: 3. **区别和联系**4. **总结:** AJAX 和 fetch 不是完全相同的东西,但它们有一些联系。它们都是用于在网页中实现异步请求的方式&#xff0c…