标签:ar java sp 2014 on bs new as 应用
/** * 抽象构件 */ public abstract class Component { public abstract void operate(); } /** * 具体构件 */ public class CreateComponent extends Component { @Override public void operate() { System.out.println("do somthing..........."); } } /** * 抽象装饰者 */ public abstract class Decorator extends Component { private Component component=null; public Decorator(Component _component) { this.component = _component; } @Override public void operate() { this.component.operate(); } } /** *2014-10-4上午09:26:44 */ public class CreateDecorator extends Decorator { public CreateDecorator(Component _component) { super(_component); } private void method(){ System.out.println("装饰者1。。。。。"); } public void operate() { this.method(); super.operate(); } } public class CreateDecorator2 extends Decorator { public CreateDecorator2(Component _component) { super(_component); } private void method(){ System.out.println("装饰者2。。。。。"); } public void operate() { this.method(); super.operate(); } } /** * * *@date 2014-10-4上午09:32:08 */ public class Client { /** * 1.装饰类和被装饰类可以独立发展,不会相互耦合。 * 2.装饰模式是一种继承关系的替代方案 * 3.装饰模式可以动态的扩展一个实现类的功能。 * 装饰模式缺点: * 多层的装饰是比较复杂的 * 装饰模式的应用场景: * 1.需要扩展一个类的功能,或者给一个类增加附加的功能 * 2.需要动态的给一个对象增加功能,这些功能也可以动态的撤销 * 3.需要为一批兄弟类进行改装或增加功能,首选装饰模式 */ public static void main(String[] args) { Component component = new CreateComponent(); component = new CreateDecorator(component); component = new CreateDecorator2(component); component.operate(); } }
标签:ar java sp 2014 on bs new as 应用
原文地址:http://my.oschina.net/u/586094/blog/330234