9、 DECORATOR: Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照片,在背面写上 “最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……,我们都是Decorator,最终都在修饰我这个人呀,怎么样,看懂了吗?
装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。
它最经典的特征就是:
1.必须有一个它自己的父类为自己的成员变量;
2.必须继承公共父类。
public interface Component {
public void methodA();
}
public class ConcreteComponent implements Component {
public void methodA() {
//do somthing...
}
}
public class Decorator implements Component {
private Component c;
public Decorator(Component c) {
this.c = c;
}
public void methodA() {
//do sth.
c.methodA();
//do sth.
}
}
下面这个例子来自Head First,收藏
http://www.blogjava.net/sterning/archive/2008/01/21/176679.html
posted on 2008-01-24 11:31
EvanLiu 阅读(2889)
评论(0) 编辑 收藏 所属分类:
设计模式