美文网首页
Java设计模式——装饰模式

Java设计模式——装饰模式

作者: 黑白咖 | 来源:发表于2017-02-19 18:53 被阅读22次

装饰模式用于在不改变原类的情况下,扩展一个类的功能,这种扩展是动态的,动态的为一个对象增加功能,而且还动态撤销功能,但是有一个很不好的缺点就是将会产生大量的类对象,这些类对象之间可能会难以区分,并且随着动态添加的功能越多,代码会越来越难以阅读。

关于装饰模式,我们最容易想到的是Java的IO

装饰模式有一个很明显的套路,就是被装饰类会作为参数传给修饰类,然后一直延伸,直到我们得到我们想要的经过多次修饰的对象。装饰对象和被装饰对象需要实现一样的接口,然后修饰类对象会持有被修饰类的对象。

接下来我们举一个简单例子来说明一下怎么使用装饰模式

1、统一实现的接口

2、被修饰类和修饰类实现统一实现的接口

运行代码

运行结果如下

其实问题也是显而易见的,如果我们想要新增功能的话,那么就需要新增修饰类,这就导致修饰类越来越多,这带来的后果就是如果我们发现修饰类的代码出现了问题,这就带来毁天灭地的灾难了,所有的修饰类和被修饰类都需要改一遍。所以我个人对修饰模式其实并不是很讨好(毕竟本渣的代码出错率较高)。。

相关文章

  • 装饰者模式——IO流运用

    推荐博客Java设计模式学习09Java设计模式学习09Java设计模式学习09 装饰者模式还是比较难懂的。。。。...

  • Java设计模式——单例模式(Singleton Pattern

    从上一篇文章Java设计模式——装饰模式(Decorator Pattern)中估计大家都已经对java设计模式有...

  • java IO 的知识总结

    装饰者模式 因为java的IO是基于装饰者模式设计的,所以要了解掌握IO 必须要先清楚什么事装饰者模式(装饰者模式...

  • Java设计模式之装饰器模式

    Java设计模式之装饰器模式 本文仅是个人观点,如有错误请指正 简介 装饰器模式(Decorator Patter...

  • Java设计模式系列-装饰器模式

    原创文章,转载请标注出处:《Java设计模式系列-装饰器模式》 一、概述 装饰器模式作用是针对目标方法进行增强,提...

  • Java设计模式之 —— 装饰者(Decorator) — 点

    Java设计模式之 —— 装饰者(Decorator) — 点炒饭 下面会用做炒饭的例子来描述一下装饰者设计模式,...

  • Java设计模式-装饰模式

    这篇文章我们来一起学习一下设计模式中的装饰模式,这是一个说简单也简单说不简单也不简单的一个模式,我们要理解的是它的...

  • Java设计模式----装饰模式

    职责 动态的位一个对象增加新的功能。 装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。...

  • java设计模式——装饰模式

    装饰模式 1.定义: 动态的给一个对象添加一些额外的职责。就增加功能来讲,装饰模式比生成子类更为灵活。 2.使用场...

  • Java设计模式--装饰模式

    装饰模式的定义是:装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的...

网友评论

      本文标题:Java设计模式——装饰模式

      本文链接:https://www.haomeiwen.com/subject/olidwttx.html