当有这样的业务需求的时候——要为写好的代码在目标代码之前或者之后添加部分操作时,此时最笨的方法就是直接在目标代码的前后加上我们需要的功能代码,但是这样违背了java封装的特性。更好一点的方法就是使用设计模式——代理模式,然而,装饰器模式也有同类的功能,那么着两种设计模式到底有什么区别呢?下面就分别来...
分类:
其他好文 时间:
2014-09-09 22:57:39
阅读次数:
441
装饰者模式是一种在框架中应用广泛的设计模式,在JavaAPI中文件流操作就应用了这样的模式,例如InputStream in = new BufferedInputStream(new FileInputStream(file));其中,BufferedInputStream被用来装饰FileInp...
分类:
其他好文 时间:
2014-09-09 17:49:59
阅读次数:
281
假设有一个公司要做产品套餐,即把不同的产品组合在一起,不同的组合对应不同的价格。最终呈现出来的效果是:把产品组合的所有元素呈现出来,并显示该组合的价格。 每个产品都有名称和价格,首先设计一个关于产品的抽象基类。 public abstract class ProductBase { public a...
分类:
其他好文 时间:
2014-09-08 09:37:36
阅读次数:
359
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------public class Demo5 {动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而...
分类:
其他好文 时间:
2014-09-07 01:03:34
阅读次数:
250
1装饰模式的核心内容是:
A:通过中间这向多方发送消息
2装饰模式的作用:。
3装饰模式具体描述
装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,
是继承关系的一个替代方案,提供比继承更多的灵活性。
动态给一个对象增加功能,这些功能可以再动态的撤消。
增加由一些基本功能的排列组合而产生的非常大量的功能。
Mary过完轮到S...
分类:
其他好文 时间:
2014-09-06 23:54:04
阅读次数:
496
使用了装饰设计模式:此类的设计是为了提高流操作数据的效率。思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法。原理; 1,使用流的read方法从源中读取一批数据存储到缓冲区的数组中。 2,通过计数器记录住存储的元素个数。 3,通过数组的角标来获...
分类:
编程语言 时间:
2014-09-04 00:04:47
阅读次数:
285
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2014-09-02 17:34:55
阅读次数:
285
形象例子: Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照片,在背面写上“最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……,我们都是Dec....
分类:
其他好文 时间:
2014-09-01 21:00:43
阅读次数:
365
这一章看完之后,我感觉,装饰者模式就是对类继承的一种递归调用式的组合应用,很好的是实现了开闭原则,可以有效的扩展应用程序。比如书中的例子,有几种饮料,每种饮料的价格已经知道了,但是我们又有很多种的调料,每种调料也有它的价格,我们现在需要是在饮料中加调料,那么这样一来,饮料的售价就会变化,如何来描述....
分类:
其他好文 时间:
2014-08-31 14:24:51
阅读次数:
187
|--什么是装饰模式。
装饰模式:是你还是你,一切拜托你(借用老崔经典词)。
它是由继承出现的,先有继承,再有装饰。
回忆继承
好处:提高复用性,让可以重复使用,通过方法重写利用后期扩展。
坏处:由于类与类之间的继承关系,但他们关系增强,耦性也就高了。不符合java宗旨:低耦合,高内聚。
对比如下:
a: 有一个Witer体系
|--TxtWrite
|-...
分类:
其他好文 时间:
2014-08-30 01:17:28
阅读次数:
164