首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式:装饰模式

2012-10-28 
设计模式:装饰模式?JAVA 的IO模块如果不使用装饰模式,会需要更多的IO类,如带缓冲的并能读取基本类型的类、

设计模式:装饰模式

设计方式:装饰模式

设计方式:装饰模式

设计方式:装饰模式

设计方式:装饰模式

设计方式:装饰模式

设计方式:装饰模式

?

JAVA 的IO模块如果不使用装饰模式,会需要更多的IO类,如带缓冲的并能读取基本类型的类、读取字节数组的缓冲类等等。

?

package com.test.decrator;//抽象构件角色public interface Component {public void dosometing();}

?

package com.test.decrator;//具体构件角色public class ConcreteComponent implements Component {public void dosometing() {System.out.println("功能A");}}

?

package com.test.decrator;//装饰角色public class Decorator implements Component {private Component component;public Decorator(Component component){this.component = component;}public void dosometing() {component.dosometing();}}

?

package com.test.decrator;//具体装饰角色1public class ConcreteDecorator1 extends Decorator {public ConcreteDecorator1(Component component) {super(component);}public void dosometing() {super.dosometing();this.doAnotherthing();}private void doAnotherthing(){System.out.println("功能B");}}

?

package com.test.decrator;//具体装饰角色2public class ConcreteDecorator2 extends Decorator {public ConcreteDecorator2(Component component) {super(component);}public void dosometing() {super.dosometing();this.doAnotherthing();}private void doAnotherthing() {System.out.println("功能C");}}

?

package com.test.decrator;public class Client {public static void main(String[] args) {//节点流Component component = new ConcreteComponent();//过滤流Component component2 =new ConcreteDecorator1(component);//过滤流Component component3 =new ConcreteDecorator2(component2);component3.dosometing();}}

?

?

打印出

功能A
功能B
功能C

?

学IO最重要的是深刻理解装饰模式!

热点排行