常用设计模式-装饰器模式

装饰器模式是一种结构型设计模式,用于在不改变对象结构的情况下向对象添加新功能。它通过创建包装对象来添加职责,相比于继承,提供了一种更灵活的扩展方式。装饰器模式适用于需要动态增加或移除对象功能的场景,避免了大量的子类膨胀。文章中通过一个英雄装备的例子展示了如何使用装饰器模式给英雄添加防御和攻击能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         装饰器模式允许向一个现有对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装(装饰器模式是用来给对象增加某些特性或者对被装饰对象进行某些修改)。 

        一般情况通过类的继承来扩展功能,装饰器模式可以动态的给类增加功能    

// 主要解决:我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。
// 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。
//      需要扩展一个类的功能,或给一个类增加附加责任。
//      需要动态的给一个对象增加功能,这些功能可以再动态地撤销。
//      需要增加一些基本功能的排列组合而产生的非常大量的功能。
// 何时使用:在不想增加很多子类的情况下扩展类。
// 如何解决:将具体功能职责划分,同时继承装饰器模式。

//注意:装饰者模式的根本是装饰而不是改变接口,原先调用的什么接口,最后还是会调用到这个接口,也就是装饰角色的接口与抽象构件角色的接口是完全一致的,也叫做完全透明装饰者模式,反之如果接口发生了改变,那就是一种适配器了。

        装饰器模式的优点:
                1、可以轻松对已存在的对象进行修改和包装,在被装饰者的前面或者后面添加自己的行为,而无需修改原对象
                2、可以动态、不限量地

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值