装饰者模式()
装饰者模式拥有一个设计非常巧妙的结构它可以动态添加对象功能在基本的设计原则中有一条重要的设计准则叫做合成/聚合复用原则根据该原则的思想代码复用应该尽可能使用委托而不是使用继承因为继承是一种紧密耦合任何父类的改动都会影响其子类不利于系统维护而委托则是松散耦合只要接口不变委托类的改动并不会影响其上层对象
装饰者模式就充分运用了这种思想通过委托机制复用系统中的各个组件在运行时可以将这些功能组件进行叠加从而构造一个超级对象使其拥有所有这些组件的功能而各个子功能模块被很好地维护在各个组件的相关类中拥有整洁的系统结构
在本小节中提到装饰者模式是因为这种结构可以很好地将功能组件和性能组件进行分离彼此互不影响并在需要的时候有机地结合起来为了更好地理解装饰者模式如何做到性能模块的分离首先需要对装饰者模式做一个总体的了解
注意装饰者模式可以有效分离性能组件和功能组件从而提升模块的可维护性并增加模块的复用性
装饰者模式的基本结构如图所示
图 装饰者模式结构
装饰者(Decorator)和被装饰者(ConcreteComponent)拥有相同的接口Component被装饰者通常是系统的核心组件完成特定的功能目标而装饰者则可以在被装饰者的方法前后加上特定的前置处理和后置处理增强被装饰者的功能
装饰者模式的主要角色如表所示
表 装饰者模式角色
装饰者模式的一个典型案例就是对输出结果进行增强比如现在需要将某一结果通过HTML进行发布那么首先就需要将内容转化为一个HTML文本同时由于内容需要在网络上通过HTTP流传故还需要为其增加HTTP头当然作为一个更复杂的情况可能还要为其安置TCP头等但作为一个示例这里做简化处理
返回目录Java程序性能优化让你的Java程序更快更稳定
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
JME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南