装饰模式就是为一个对象增添新的功能,在对象的基础上修饰。本文实现的功能是,对象a有方法show输出“This is a test”,经过装饰后输出“This is a test for decorate”。实质就是多个类通用一个接口,然后将要修饰的类定义在修饰类的构造函数里。
(1)首先建立通用接口,里面有方法show()
package Decorate;
public interface Component {
public void show();
}
(2)建立一个类实现show
package Decorate;
public class Concrete implements Component{
public void show(){
System.out.print("This is a test");
}
}
package Decorate;
public class Decorate implements Component {
Component component;
public Decorate(Component c){
component=c;
}
public void show(){
component.show();
System.out.print(" for decorate");
}
}
package Decorate;
public class Client {
public static void main(String[] args){
Component a=new Concrete();
Component b=new Decorate(a);
a.show();
System.out.println();
b.show();
}
}
原文:http://blog.csdn.net/buptgshengod/article/details/19117377