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