装饰者模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。C
Component类abstract class Component{ public abstract void Operation();}ConcreteComponent类:class ConcreteComponent extend Conmponent{ public void Operation(){ System.out.println("具体对象的操作"); }}Decorator类:abstract class Decorator extend Component{ protect Component component; public void SetComponent(Component conponent){ System.out.println("具体对象的操作"); } public void Operation(){ if(component!=null){ component.Operation(); } }}ConcreteDecoratorA类:class ConcreteDecoratorA extend Decorator{ private String addedState; public void Operation(){ super.Operation(); addedState = "New State"; System.out.println("具体装饰对象A的操作"); }}class ConcreateDecoratorB extend Decoratror{ public void Operation(){ super.Operation(); AdderBehavior(); System.out.println("具体装饰对象B的操作"); }}客户端代码:static void main(String[] args){ ConcreateComponent c = new ConcreteComponent(); ConcreateDecoratorA d1=new ConcreateDecoratorA(); ConcreateDecoratorB d2=new ConcreateDecoratorB(); d1.SetComponent(c); d2.SetComponent(d1); d2.Operation();}装饰模式是利用SetComponent来对对象进行包装,这样每个装饰模式对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链中。
本文介绍了一种设计模式——装饰者模式,它允许在不改变对象结构的前提下动态地给对象添加新的职责。通过具体的Component、Decorator及ConcreteDecorator实例,展示了装饰者模式如何提供比继承更加灵活的扩展方式。
1383

被折叠的 条评论
为什么被折叠?



