您的位置:首页 > 其它

关于Decorator Pattern 被包装的对象生成顺序的问题

2009-09-06 20:02 531 查看

关于包装类包装之后,对象生成顺序

package pku.ss.caoning.ipctest.decoratorTest;

public abstract class AbstractDecorator implements Parent {
private Parent object;

public AbstractDecorator(Parent object){
this.object=object;
}

public void print() {
// TODO Auto-generated method stub
System.out.println("Decorator");
}

}

package pku.ss.caoning.ipctest.decoratorTest;

public class ConcreteClass implements Parent {
public ConcreteClass(){
System.out.println("ConcreteClass");
}

public void print() {
// TODO Auto-generated method stub

}

}

package pku.ss.caoning.ipctest.decoratorTest;

public class ConcreteDecorator1 extends AbstractDecorator {

public ConcreteDecorator1(Parent object) {
super(object);
// TODO Auto-generated constructor stub
System.out.println("ConcreteDecorator1");
}

}

package pku.ss.caoning.ipctest.decoratorTest;

public class ConcreteDecorator2 extends AbstractDecorator {

public ConcreteDecorator2(Parent object) {
super(object);
// TODO Auto-generated constructor stub
System.out.println("ConcreteDecorator2");
}

}

package pku.ss.caoning.ipctest.decoratorTest;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new ConcreteDecorator2(new ConcreteDecorator1(new ConcreteClass()));
}

}

package pku.ss.caoning.ipctest.decoratorTest;

public interface Parent {

public void print();
}

结果是:
ConcreteClass
ConcreteDecorator1
ConcreteDecorator2
可以看出来new ConcreteDecorator2(new ConcreteDecorator1(new ConcreteClass()));的生成顺序是从内而外
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: