【设计模式】装饰模式(Decorator Pattern)

1.    模式结构
  
2.    角色
(1)    Component(抽象构件)
为具体构件类和抽象装饰类的共同父类
(2)    ConcreteComponent(具体构件)
具体构件对象,后续由装饰类为其添加方法
(3)    Decorator(抽象装饰类)
实现类,等价于聚合版的具体构件
在此类中通过set方法或者构造方法对构件进行聚合
用聚合的方式模拟对构件的继承
(4)    ConcreteDecorator(具体装饰类)
继承抽象装饰类,在此类中添加新的方法完成对构件的装饰
3.    透明装饰模式
在调用期间,用抽象构件类型来定义具体构件对象/具体装饰对象
具体装饰在原方法中添加新行为
并且可以多重装饰
4.    半透明装饰模式
在调用期间,用具体装饰类型来定义具体装饰对象
具体装饰类中定义新方法提供客户端使用
5.    简化版装饰模式
不使用抽象构件类,直接让抽象装饰类继承具体构件类
不使用抽象装饰类,直接让具体装饰类装饰具体构件
6.    特点
对象结构型模式
用关联关系(聚合)代替继承,实现对类的动态扩展
7.    应用
Java IO流
JScrollpane对JList装饰实现添加滚动条
多重加密

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值