装饰器模式:运行的时候额外添加功能
正所谓设计模式就是为了解决某类问题而存在的,也许等遇到了这类问题,才会加深对它的理解吧
直接上代码
玩家父类
public abstract class BasePlayer
{
public abstract void Show();
}
装备道具父类继承自玩家父类
public class BaseEquipment:BasePlayer
{
protected BasePlayer _Player;
public BaseEquipment(BasePlayer player)
{
this._Player = player;
}
public override void Show()
{
this._Player.Show();
Console.WriteLine("开始动态添加装备");
}
}
玩家类
public class Mid:BasePlayer
{
public override void Show()
{
Console.WriteLine("Mid玩家");
}
}
装备类
public class PlayerArms:BaseEquipment
{
public PlayerArms(BasePlayer player):base(player)
{
}
public override void Show()
{
base.Show();
Console.WriteLine("装备了一把武器");
}
}
public class PlayerHead:BaseEquipment
{
public PlayerHead(BasePlayer player)
: base(player)
{
}
public override void Show()
{
base.Show();
Console.WriteLine("装备了一顶帽子");
}
}
调用
BasePlayer player = new Mid();
player.Show();
Console.WriteLine("******************************");
player = new PlayerArms(player);
player.Show();
Console.WriteLine("******************************");
player = new PlayerHead(player);
player.Show();
结果
有研究设计模式的小伙伴可以加我QQ一起探讨