【设计模式】装饰者模式

装饰者模式

角色和buff进行解释

步骤

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

理解

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

代码

csharp 复制代码
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();
相关推荐
缺点内向8 分钟前
如何在 C# 中高效的将 XML 转换为 PDF
xml·后端·pdf·c#·.net
时光追逐者13 分钟前
Visual Studio 2026 正式版下载与安装详细教程!
ide·c#·.net·.net core·visual studio
雨中飘荡的记忆13 分钟前
设计模式之桥接模式详解
设计模式·桥接模式
雨中飘荡的记忆14 分钟前
设计模式之访问者模式详解
设计模式·访问者模式
Jomurphys19 分钟前
设计模式 - 享元模式 Flyweight Pattern
android·设计模式·享元模式
Jomurphys20 分钟前
设计模式 - 组合模式 Composite Pattern
android·设计模式·组合模式
唐青枫22 分钟前
C# 列表模式(List Patterns)深度解析:模式匹配再进化!
c#·.net
jtymyxmz14 小时前
《Unity Shader》10.1.4 折射
unity·游戏引擎
在路上看风景15 小时前
12. Burst
unity
小杨快跑~15 小时前
从装饰者到桥接再到工厂:模式组合的艺术
java·开发语言·设计模式