重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Java设计模式之装饰模式原理与用法。分享给大家供大家参考,具体如下:
网站制作、网站设计的关注点不是能为您做些什么网站,而是怎么做网站,有没有做好网站,给成都创新互联一个展示的机会来证明自己,这并不会花费您太多时间,或许会给您带来新的灵感和惊喜。面向用户友好,注重用户体验,一切以用户为中心。装饰模式能在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。JDK中IO的设计就用到了装饰模式,通过过滤流对节点流进行包装来实现功能的扩展。
装饰模式的角色的组成:
① 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加工功能的对象。(InputStream、OutputStream)
② 具体构件(Concrete Component)角色:定义一个将要接收附加功能的类。(节点流)
③ 装饰(Decorator)角色:持有一个构件(Component)对象的实例,并实现一个与抽象构件接口一致的接口。(过滤流FilterInputStream、FilterOutputStream)
④ 具体装饰(Concrete Decorator)角色:负责给构件对象添加上附加的功能。(带具体附加功能的过滤流,BufferedInputStream,DataInputStream等)
以下给出一个装饰模式的简单的例子:
1. 抽象构件角色:定义一个接口Component
package com.tydic.decorator; //抽象构件角色 public interface Component { public void doSomething(); }