装饰者模式

Decorator模式

|
|-定义:在不改变原有对象的基础之上,将功能附加到对象上。(向被装饰对象添加某些功能)
|
|-适用场景 |--1.扩展一个类的功能或者给一个类添加附加职责
|         |--2.给一个对象动态的添加功能,或动态撤销功能
|         
|-涉及的类 |--装饰类和被装饰类共同的接口或基类
|		  |
|		  |--被装饰类
|         |
|         |--抽象装饰类
|         |         
|         |--提供装饰的类
|
|-java.io.InputStream为例|--基类       : InputStream
|                        |--被装饰类   : FileInputStream,ByteArrayInputStream
|                        |--抽象装饰类 : FilterInputStream
|                        |--具体装饰类 : BufferedInputStream,LineInputStream,...

装饰者模式类图

                      ________________
                     | Component      |
                     |----------------|
                     |----------------|
                     |+ operate():void|
                     |________________|
					 
                    /|\         /|\    
                    /             \
 __________________/               \ ______________________
| ConcreteComponent|                | Decorator            |
|------------------|                |----------------------|
|------------------|                |- conponent:Component |
|+ operate():void  |                |----------------------|
|__________________|                |+ Decorator(Component)|
                                    |+ operate():void      |
                                    |______________________|   
            
                                     /|\             /|\
                                     /                 \
              _____________________ /                   \ _____________________
             | ConcreteDecoratorA  |                     | ConcreteDecoratorB  |
             |---------------------|                     |---------------------|
			 |- conponent:Component|                     |- conponent:Component|
             |---------------------|                     |---------------------|
             |+ operate():void     |                     |+ operate():void     |
             |+ newMethodA():void  |                     |+ newMethodB():void  |
             |_____________________|                     |_____________________|
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值