首页 > 代码库 > 设计模式之装饰器模式
设计模式之装饰器模式
简介:
Decorator装饰器,就是动态地给一个对象添加一些额外的职责,该对象与装饰器对象需要实现同一个接口,装饰器在方法实现里调用目标对象的方法实现并加入额外的操作。
使用场景:
将复杂的功能细化,分散到不同的装饰器中,然后根据需要动态的组合这些功能。
类图:
示例代码:
装饰器跟被目标对象都需实现的接口:
public interface Component { public void operation();}
真正的实现类:
public class ConcreteComponent implements Component { @Override public void operation() { System.out.println("I am doing the real thing"); }}
装饰器A:
public class DecoratorA implements Component { private Component component; public DecoratorA(Component component) { super(); this.component = component; } @Override public void operation() { component.operation(); System.out.println("I am doing the extra thing A"); }}
装饰器B:
public class DecoratorB implements Component { private Component component; public DecoratorB(Component component) { super(); this.component = component; } @Override public void operation() { component.operation(); System.out.println("I am doing the extra thing B"); }}
客户端:
public static void main(String[] args) { Component component = new DecoratorB(new DecoratorA(new ConcreteComponent())); component.operation(); }
运行结果:
I am doing the real thing
I am doing the extra thing A
I am doing the extra thing B
设计模式之装饰器模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。