【设计模式】装饰者模式

embedded/2024/10/17 13:09:34/

装饰者模式

角色和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/embedded/127199.html

相关文章

axios的使用

在 Vue 项目中,封装 Axios 并实现加密、重复请求优化、请求取消、页面切换时取消未完成的请求、以及区分上传和下载操作是非常常见的需求。下面将逐一讲解这些需求的实现方式。 1. Axios 的基本封装 首先,我们可以将 Axios 封装到一个服务层中&#xf…

鸿蒙--播放器状态控制

各个页面共享同一个播放状态,而且可以互相控制,如果传递来传递去会非常的麻烦,但是他们都是Tabs组件内的,我们在index页面提供一个状态,在各个组件接收即可 创建两个子组件,一个是播放控制的子组件,一个是背景播放的子组件 背景播放组件

【Linux】为什么创建目录文件,硬链接数是2;创建普通文件时,硬链接数是1?(超详细图文解答)

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

SQL注入基础速通

<aside> &#x1f4a1; SQL速通 </aside> 注入点类型&#xff08;数字型&#xff0c;字符型&#xff09; 数字型&#xff1a;1 字符型&#xff1a;’ 和 ‘’ **数字型&#xff1a;?id1 and 11 ?id1 and 12 //报错为数字型字符型&#xff1a;?…

应用UX体验标准

1、应用导航 标准编号 2.1.1.1 系统返回 标准描述 所有界面都可以执行系统返回操作。 除一级界面外&#xff0c;所有全屏界面均需要提供返回/关闭/取消按钮。(全屏沉浸式场景除外) 测试方法 使用侧边返回手势&#xff0c;验证当前应用界面是否可以执行系统返回操作。检查…

Spring框架中的多重构造器选择:实例化对象的策略解析

在Spring框架中&#xff0c;依赖注入和对象实例化是核心功能之一。当我们在Spring容器中配置一个Bean&#xff0c;并且这个Bean类有多个构造器时&#xff0c;一个关键问题便浮现出来&#xff1a;当没有明确指定使用哪个构造器时&#xff0c;Spring是如何决定使用哪一个来实例化…

【C++】STL--list

1. list的介绍 list的文档介绍 2. list的使用 list中的接口比较多&#xff0c;此处类似&#xff0c;只需要掌握如何正确的使用&#xff0c;然后再去深入研究背后的原理&#xff0c;已 达到可扩展的能力。以下为list中一些常见的重要接口。 2.1 list的构造 // list的构造 vo…

【工具】HTTrack:网站一键克隆下载,实现离线浏览与备份的利器

什么是 HTTrack&#xff1f; HTTrack 是一款用于复制完整网站的开源工具&#xff0c;它可以从服务器下载整个网站的内容&#xff0c;包括 HTML 文件、图像、样式表、脚本等资源。通过这种方式&#xff0c;你可以在离线状态下浏览网站&#xff0c;就像在线一样。 HTTrack 支持…