设计模式-装饰模式
(大话设计模式学习总结)
装饰模式(Decorator)定义:装饰模式动态的给一个对象添加一些额外,就增加功能来说,装饰模式比生成子类更加灵活。

装饰模式利用setComponent来对对象进行包装,生成一条对象链,每个装饰对象的实现和如何使用对象分离开,装饰对象只关心自己的功能,无需关系如何被添加到对象链当中。
具体代码:
|
public abstract class Component { public abstract void operation(); }
public class ConcreteComponent extends Component { @Override public void operation() { System.out.println("ConcreteComponent"); } }
public class Decorator extends Component{ private Component component; public Component getComponent() { return component; } public void setComponent(Component component) { this.component = component; }
@Override public void operation() { if (component != null) { component.operation(); } } }
public class ConcreteDecoratorA extends Decorator { private String addedState; @Override public void operation(){ super.operation(); addedState = "New State"; System.out.println("ConcreteDecoratorA"); } }
public class ConcreteDecoratorB extends Decorator { private void addBehavior() { }
@Override public void operation(){ addBehavior(); super.operation(); System.out.println("ConcreteDecoratorB"); } }
public class TestDemo { @Test public void testDecorator(){ Component component = new ConcreteComponent(); Decorator decoratorA = new ConcreteDecoratorA(); Decorator decoratorB = new ConcreteDecoratorB(); decoratorA.setComponent(component); decoratorB.setComponent(decoratorA);
decoratorB.operation(); } } |
浙公网安备 33010602011771号