设计模式学习--装饰者模式(Decorator Pattern)

概念:

装饰者模式(Decorator Pattern): 动态地将功能添加到对象,相比生成子类更灵活,更富有弹性.

解决方案:

装饰者模式的重点是对象的类型,装饰者对象必须有着相同的接口,也就是有着相同的结构.这样一来,在运行的过程中,就可以将这些对象融合在一起,将相同的属性等成员有机的结合,就像生成另外一种类型一样,而实际上,我们并不需要真的创建这个类型,它是动态生成的.这些装饰者既可以组合,也可以撤销组合,既回复到原来对象状态.

示例介绍:

装饰者模式的关键就是装饰者类型的定义,而其中应包括组合操作的方法.

现在我们看一下装饰者接口的定义:

    
 
 
 
 

应用特点

使用装饰者模式时应注意以下特点:

  • 因装饰者模式一般用于动态组合对象,所以,他们一般都是临时性的,在这个模型中,我们并没有添加取消组合功能.如果需要,你可以在IDecorator接口中添加Remove()方法,并在CDecorator类中实现它.
  • 不需要创建新的类型,就可以修改对象的特性(如对象的各种属性值),从而影响了对象的行为,就像创建了一个新的对象类型一样.
  • 需要创建很多的相同结构的装饰者对象,以便于组合.

结束语

不要强硬的去理解设计模式,也不要强硬的去套用它的形式,你所要做的是理解它的技巧以及思想,慢慢体会你才会理解它的妙用,这是我的一点体会,希望大神多多拍砖.如果感觉不错,请推荐****

转载于:https://www.cnblogs.com/smiler/p/3307081.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值