装饰器模式

装饰器模式的意图是用来动态的增加/减少功能职责。顾名思义,该模式的功能十分明显,就是为了满足时不时冒出的新需求,而避免过多生成子类。举个例,装饰器模式为已有类动态附加额外功能就像一般游戏一样,可以为英雄的升级提供额外的奖励,具体对象是ConcreteComponent,通过装饰器Decorator,实现每一个附加功能(奖励)进具体对象ConcreteDecorator。
优点:通过动态组合的方式,灵活给对象添加所需要的功能。
缺点:多人同时操作可能发生冲突,代码后续维护和调试因为代码块的改变而变得困难。
应用场景:

1、当子类扩展功能不可行时,
2、向同一类型对象中的某个对象动态添加/删除功能而不影响到其他对象

需要被装饰的对象抽象成component(目标对象),为了使得客户端在使用目标对象的时候不去区分装饰者类型和被装饰者类型,所以统一抽象成component类型。然后在component中定义operation(目标对象的业务行为)。concreteComponent和Decorater分别实现Component。Decorater设计成抽象类,在Decorater上可以实现不同的装饰行为,即ConcreteDecorater,在这里可以添加业务行为。component则是以组合的方式添加到Decorater中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值