设计模式(八)装饰模式

2018-07-29  本文已影响0人  Java技术范

01.模式动机

一般有两种方式可以实现给一个类或对象增加行为:

装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不需要创造更多子类的情况下,将对象的功能加以扩展。这就是装饰模式的模式动机。

02.模式定义

装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。

03.模式结构

装饰模式包含如下角色:

04.时序图

05.代码示例

这里我们的用例场景是,在读取的时候,我们需要在这之前增加一些业务逻辑:

读取的接口:

一般的文件读取类,这个类只是简单的读取一下:

假设我们需要在读取之前增加一些业务逻辑,我们使用一个装饰器类来实现

具体的装饰器类

客户端的使用:

06.模式分析

07.模式优点

装饰模式的优点:

08.模式缺点

装饰模式的缺点:

09.适用环境

在以下情况下可以使用装饰模式:


上一篇下一篇

猜你喜欢

热点阅读