设计模式-结构型模式:装饰器模式 Decorator

装饰器模式:运行的时候额外添加功能

正所谓设计模式就是为了解决某类问题而存在的,也许等遇到了这类问题,才会加深对它的理解吧

直接上代码


玩家父类

 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一起探讨


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值