java设计模式-装饰模式

java设计模式-装饰模式

ID:40199688

大小:32.50 KB

页数:4页

时间:2019-07-25

java设计模式-装饰模式_第1页
java设计模式-装饰模式_第2页
java设计模式-装饰模式_第3页
java设计模式-装饰模式_第4页
资源描述:

《java设计模式-装饰模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、java设计模式-装饰模式Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样。因此,装饰器模式具有如下的特征:它必须具有一个装饰的对象。它必须拥有与被装饰对象相同的接口。它可以给被装饰对象添加额外的功能。用一句话总结就是:保持接口,增强性能。装饰器通过包装一个装饰对象来扩展其功能,而又不改变其接口,这实际上是基于对象的适配器模式的一种变种。它与对象的适配器模式的异同点如下。相同点:都拥有一个目标对象。不同点:适配器模式需要实现另外一个接口,而装饰器模式必须实现该对象的接口。Sourcable类的源代码如程序12-22所示,

2、其定义了一个接口函数operation()。程序12-22  源接口Sourcable.java(2)Source.jpackagedecorator;publicinterfaceSourcable{        publicvoidoperation();}Source是Sourcable.java的一个实现,其函数operation()负责往控制台输出一个字符串:原始类的方法。其源代码如程序12-23所示。程序12-23  源类Source.javapackagedecorator;publicclassSourceimplementsSourcable{publ

3、icvoidoperation(){                      //TODOAuto-generatedmethodstub                      System.out.println("原始类的方法");   }}(3)装饰器类Decorator1.java采用了典型的对象适配器模式,它首先拥有一个Sourcable对象source,该对象通过构造函 数进行初始化。然后它实现了Sourcable.java接口,以期保持与source同样的接口,并在重写的operation()函数中调用 source的operation()函数,在调用

4、前后可以实现自己的输出,这就是装饰器所扩展的功能。其源代码如程序12-24所示。程序12-24  装饰器类Decorator1.javapackagedecorator;publicclassDecorator1implementsSourcable{privateSourcablesourcable;     publicDecorator1(Sourcablesourcable){         super();         this.sourcable=sourcable;     }          publicvoidoperation(){      

5、   System.out.println("第一个装饰器前");         sourcable.operation();         System.out.println("第一个装饰器后");      }}装饰器类Decorator2.java是另一个装饰器,不同的是它装饰的内容不一样,即输出了不同的字符串。其源代码如程序12-25所示。程序12-25  装饰器类Decorator2.javapackagedecorator;publicclassDecorator2implementsSourcable{privateSourcablesourcable

6、;     publicDecorator2(Sourcablesourcable){         super();         this.sourcable=sourcable;     }     publicvoidoperation(){         System.out.println("第二个装饰器前");         sourcable.operation();         System.out.println("第二个装饰器后");      }}装饰器类Decorator1.java是第三个装饰器,不同的是它装饰的内容不一样,即输出了

7、不同的字符串。其源代码如程序12-26所示。程序12-26  装饰器类Decorator3.javapackagedecorator;publicclassDecorator3implementsSourcable{privateSourcablesourcable;     publicDecorator3(Sourcablesourcable){         super();         this.sourcable=sourcable;     }     publicvoidoperation(){      

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。