package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/publicabstractclassComponent {publicabstractvoidoperate();
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/publicclassConcreteComponentextendsComponent{@Overridepublicvoidoperate() {
System.out.println("Do something....");
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/publicabstractclassDecoratorextendsComponent{private Component component =null;
publicDecorator(Component _component){
this.component=_component;
}
@Overridepublicvoidoperate(){
this.component.operate();
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/publicclassDecorator1extendsDecorator {publicDecorator1(Component _component){
super(_component);
}
@Overridepublicvoidoperate() {
System.out.println("Decorator 1.....");
super.operate();
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/publicclassDecorator2extendsDecorator {publicDecorator2(Component _component){
super(_component);
}
@Overridepublicvoidoperate() {
System.out.println("Decorator 2.....");
super.operate();
}
}