装饰者模式
角色和buff进行解释
步骤
- 角色和Buff共有一个Component,理解为有同一个操作,给予Buff里面可以填充角色。
- 角色有一个基类,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();