设计模式之装饰器模式

        上一篇写了关于工厂模式的博客,最后抛出了一个小问题,产品需求永远在变动,所以说用工厂方法就会有一定的局限性,接下来我们看下装饰器模式是如何解决这个问题的。

        装饰器模式,听名称就是要修饰已经好的对象。比如:对于建造车,开始的时候造车是很简单的,可能有很多功能不完善,但是那个时候能造出跑的车已经是科技的很大进步了,可能开始的时候车没有空调,定时巡航,电子手刹等等,但是基本的造车是不会变的,比如造车需要四个轮子,一个方向盘,车门等等。为了把车的销量变得更高,车厂会想进一切办法给车增加新的功能,所以装饰器就解决了这个问题,毕竟设计模式多修改关闭对新增开放嘛。

        装饰器类图:


首先是抽象接口类component类定义了建造车的方法。concreateComponent是实现建造车的一种品牌,Decrator装饰器继承造车方法,并且聚合父类,comcreateDecrator装饰器的实现,额外的功能都在这个类里面完成。

        其实对于装饰器来说,优点可以动态的给类添加功能,不用修改原来的类。不过复用性不是很高,在比较复杂的装饰情况下,要小心装饰的层级关系,所以层级一定不要太深。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值