java设计模式-装饰模式.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java设计模式-装饰模式Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样。因此,装饰器模式具有如下的特征: 它必须具有一个装饰的对象。 它必须拥有与被装饰对象相同的接口。 它可以给被装饰对象添加额外的功能。 用一句话总结就是:保持接口,增强性能。 装饰器通过包装一个装饰对象来扩展其功能,而又不改变其接口,这实际上是基于对象的适配器模式的一种变种。它与对象的适配器模式的异同点如下。 相同点:都拥有一个目标对象。 不同点:适配器模式需要实现另外一个接口,而装饰器模式必须实现该对象的接口。 Sourcable类的源代码如程序 12-22 所示,其定义了一个接口函数 operation() 。 程序12-22?? 源接口 Sourcable.java (2 ) Source.jpackage decorator; public interface Sourcable {???????? public void operation(); } Source 是 Sourcable.java 的一个实现,其函数 operation() 负责往控制台输出一个字符串:原始类的方法。其源代码如程序 12-23 所示。 程序12-23?? 源类 Source.java package decorator; public class Source implements Sourcable{ public void operation() {???????????????????? ??// TODO Auto-generated method stub ?????????????????????? System.out.println(原始类的方法);??? } } (3 )装饰器类 Decorator1.java 采用了典型的对象适配器模式,它首先拥有一个 Sourcable 对象 source ,该对象通过构造函?数进行初始化。然后它实现了 Sourcable.java 接口,以期保持与 source 同样的接口,并在重写的 operation() 函数中调用? source 的 operation() 函数,在调用前后可以实现自己的输出,这就是装饰器所扩展的功能。其源代码如程序 12-24 所示。 程序12-24?? 装饰器类 Decorator1.java package decorator; public class Decorator1 implements Sourcable{ private Sourcable sourcable;?? ??? public Decorator1(Sourcable sourcable){?? ??????? super();?? ??????? this.sourcable=sourcable;?? ??? }?? ????? ??? public void operation() {?? ??????? System.out.println(第一个装饰器前);????????? sourcable.operation();?? ??????? System.out.println(第一个装饰器后);?? ???? } } 装饰器类Decorator2.java 是另一个装饰器,不同的是它装饰的内容不一样,即输出了不同的字符串。其源代码如程序 12-25 所示。 程序12-25?? 装饰器类 Decorator2.java package decorator; public class Decorator2 implements Sourcable{ private Sourcable sourcable;?? ??? public Decorator2(Sourcable sourcable){?? ??????? super();?? ??????? this.sourcable=sourcable;?? ??? }?? ??? public void operation() {?? ??????? System.out.println(第二个装饰器前);????????? sourcable.operation();?? ??????? System.out.println(第二个装饰器后);??? ??? } } 装饰器类Decorator1.java 是第三个装饰器,不同的是它装饰的内容不一样,即输出了不同的字符串。其源代码如程序 12-26 所示。 程序12-26?? 装饰器类 Decorator3.java package decorator; public class Decorator3 impleme

文档评论(0)

orhchv6 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档