博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[设计模式]装饰模式
阅读量:6463 次
发布时间:2019-06-23

本文共 618 字,大约阅读时间需要 2 分钟。

一、简介

1、名称:装饰(Decorator)模式或者包装器(Wrapper)模式

2、定义:动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。

二、参与者

1、Component

——定义一个对象接口,可以给这些对象动态地添加职责。

2、ConcreteComponent

——定义一个对象,可以给这个对象添加一些职责。

3、Decorator

——维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。

三、协作

Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作。

四、总结

当系统需要新功能的时候,是向旧的类中添加新的代码。这些新的代码通常装饰了原有类的核心职责或主要行为。它们在主类中加入了新的字段,新的方法和新的逻辑,从而增加了主类的复杂度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。而装饰模式却提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所需要的装饰的对象,因此,当需要执行特殊的行为时,客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰公恩给你包装对象。

参考文档

百度百科:

转载于:https://www.cnblogs.com/dirt2/archive/2012/10/30/decorator.html

你可能感兴趣的文章
Linux平台下使用rman进行oracle数据库迁移
查看>>
全栈工程师学习Linux技术的忠告
查看>>
iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变...
查看>>
C# Dictionary用法总结
查看>>
SVN服务器使用(二)
查看>>
反射获取内部类以及调用内部类方法
查看>>
C语言 - pthread
查看>>
谈Linq To Sql的优劣--纯个人观点
查看>>
HDU 4996 Revenge of LIS(DP)
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
Android中的PID和UID
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>
判断一个数是否为素数的一个讨论(一)
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>