類圖
Coding
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/
public abstract class Component {
public abstract void operate();
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/
public class ConcreteComponent extends Component{
@Override
public void operate() {
System.out.println("Do something....");
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/
public abstract class Decorator extends Component{
private Component component =null;
public Decorator(Component _component){
this.component=_component;
}
@Override
public void operate(){
this.component.operate();
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/
public class Decorator1 extends Decorator {
public Decorator1(Component _component){
super(_component);
}
@Override
public void operate() {
System.out.println("Decorator 1.....");
super.operate();
}
}
package DecoratorPattern;
/**
* Created by jiangcw on 2017/2/3.
*/
public class Decorator2 extends Decorator {
public Decorator2(Component _component){
super(_component);
}
@Override
public void operate() {
System.out.println("Decorator 2.....");
super.operate();
}
}