【设计模式】装饰者模式

装饰者模式

角色和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();
相关推荐
乙己4077 分钟前
设计模式——桥接模式(bridge)
设计模式·桥接模式
WKP94186 小时前
原型设计模式
java·设计模式
guangzan7 小时前
常用设计模式:工厂方法模式
设计模式
·心猿意码·8 小时前
C# 垃圾回收机制深度解析
开发语言·c#
唐青枫9 小时前
C#.NET 开发必备:常用特性与注解用法大全
c#·.net
桦说编程17 小时前
Guava 迭代器增强类介绍
java·后端·设计模式
好望角雾眠19 小时前
第四阶段C#通讯开发-5:TCP
网络·笔记·网络协议·tcp/ip·c#
InCerry19 小时前
.NET周刊【11月第1期 2025-11-02】
c#·.net周报·.net周刊
黄思搏1 天前
Unity坐标转换指南 - 3D与屏幕UI坐标互转
ui·3d·unity