装饰模式 VS. 外观模式

 一、装饰模式

       小菜想要和MM约会需要给自己扮靓,而新入住房子之前也需要对每个房间装修一遍,这些事情都有一个共同的特点,就是一个词“装饰”,我们可以把装饰模式应用在这些事情上面。

       装饰模式:就是动态的给一个对象添加一些额外的职责或者是功能,装饰模式比生成子类更为灵活。是给已有功能动态的添加更多功能的一种方式。举一个装修房子例子来说明一下什么装饰模式. 

    //装饰模式
    //父类,所有房子的抽象类
    abstract class Building
    {
        public abstract void Spruce();
    }
    //要装饰的具体房子类,具体的对象,可以给这个对象添加一些职责
    class Room : Building
    {
        //房间编号
        private string name;
        public Room(string name)
        {
            this.name = name;
        }
        //对具体房间的装修
        public override void Spruce()
        {
            Console.WriteLine("房间{0}装修的设备有", name);
        }
    }
    //装饰物品,也属于房子,所以可以抽象成是房子的子类,同时也作为具体装饰物品的父类
    abstract class Decorator : Building
    {
        protected Building
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值