设计模式——装饰模式

装饰模式

装饰模式是什么

动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。

装饰模式的四种角色

抽象组件(Component)
一个抽象类,定义了“被装饰者”需要的进行的“装饰”的方法
具体组件(ConcreteComponent)
具体组件的实例被称为“被装饰者”
装饰(Decorator)
包含一个抽象组件用于声明的变量以保存“被装饰者”的引用
具体装饰(ConcreteDecotator)
具体装饰实例 称为装饰者

装饰模式的UML图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

装饰模式的优缺点

装饰模式的优点

1被装饰者和装饰着是松耦合的关系
2装饰者模式满足开闭原则
3可以使用多个具体装饰者来装饰具体组件的实例

装饰模式的缺点

多层装饰比较复杂。

装饰模式的使用场景

在不影响其他对象的情况下,程序希望动态增强类的某个对象的 功能
当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值