上次简单说了一下什么是装饰者模式以及装饰者模式的一些特点,这次接着说装饰者模式的应用。 一、主要参与的类或者接口 1.component:修饰者和被修饰者共同继承的类,定义了装饰者和被装饰者需要实现的方法,可以单独的使用,也可以被修饰者包裹起来使用。 2.concreteCompon...
分类:
编程语言 时间:
2015-04-21 17:21:56
阅读次数:
163
以前没有接触过装饰者模式,昨天简单研究了一下,记录一下,为以后进一步学习铺垫一下,刚刚接触,有不对的地方欢迎大家指正。 首先,什么是装饰者模式? 先举个例子来说,就像是一条生产蛋糕的流水线,你不能用这条流水线去生产汽车,更不能去生产坦克吧,当然你也生产不了。你的蛋糕生产出来了,要保存吧,要销...
分类:
编程语言 时间:
2015-04-21 12:47:51
阅读次数:
189
装饰者模式: 在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。该模式的组成部分: 一个共同的抽象类(父类,也可以是接口) 具体的被装饰者类(可以是多个) 一个抽象的装饰者类 和 多个具体的装饰者类注: 不需要 额外的...
分类:
其他好文 时间:
2015-04-19 10:10:47
阅读次数:
116
要实现装饰者模式,注意一下几点内容:1.装饰者类要实现真实类同样的接口2.装饰者类内有一个真实对象的引用(可以通过装饰者类的构造器传入)3.装饰类对象在主类中接受请求,将请求发送给真实的对象(相当于已经将引用传递到了装饰类的真实对象)4.装饰者可以在传入真实对象后,增加一些附加功能(因为装饰对象和真...
分类:
编程语言 时间:
2015-04-14 17:59:04
阅读次数:
178
装饰者模式就是建立一个装饰者,然后把被装饰者传进去,出来就已经装饰上了。比如我传一个房子进去,出来的时候房子就种上了一朵花,这是一个种花的装饰者;我再传进另一个装饰者,出来就把墙刷了,这是一个刷墙的装饰者。现在我们我们的被装装饰者是咖啡,很多各类的咖啡,所以需要一个超类。装饰者是很多的调料。以下是代...
分类:
其他好文 时间:
2015-04-07 01:54:43
阅读次数:
131
1、装饰者模式定义:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为。 ??2、要点 具体被装饰者和抽象装饰...
分类:
其他好文 时间:
2015-04-03 17:36:16
阅读次数:
160
一、装饰者模式的作用为函数或者对象的方法添加一些行为。二、装饰者模式的原理装饰者模式不是直接修改对象,而是以要修改的对象为基础,新建一个对象。不过这个新建的对象看起来就像在原对象的基础上增添了一些行为而已。1、在对象中使用装饰者模式:就是把对象作为参数传入另一个构造函数中,然后这个构造函数里面就利用...
分类:
编程语言 时间:
2015-04-01 23:24:58
阅读次数:
171
转载:http://www.cnblogs.com/wolf-sun/p/4319728.html写在面前最近查看写的设计模式系列文章,发现太不方便了,特在此弄一个导航页,方便查看。系列文章[Head First设计模式]山西面馆中的设计模式——装饰者模式[Head First设计模式]山西面馆中的...
分类:
其他好文 时间:
2015-03-19 17:56:23
阅读次数:
106
本文内容 实例 引入 原始方法 装饰者模式 JDK 动态代理和 cglib 代理 直接使用 AOP 框架 下载 demo 实例 引入 package com.cap.aop; public interface ICalculator { ...
分类:
编程语言 时间:
2015-03-17 11:59:35
阅读次数:
259
drink = $drink; }}class Sugar extends Drink_Decorator { public function cost() { return $this->drink->cost() + 6; }}class Milk extends...
分类:
其他好文 时间:
2015-03-07 15:23:07
阅读次数:
125