[关闭]
@songying 2018-07-02T22:20:17.000000Z 字数 931 阅读 1138

装饰器模式

设计模式


定义

动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式比生成子类更为灵活。

装饰器通用类图

代码实现

抽象构件

  1. public abstract class Component{
  2. public abstract void operate();
  3. }

具体构件

  1. public class ConcreteComponent extends Component{
  2. @Override
  3. public void operate(){
  4. # do something
  5. }
  6. }

抽象装饰者

  1. public abstract class Decorator extends Component{
  2. private Component component = null;
  3. //通过构造函数传递被修饰者
  4. public Decorator(Component _component){
  5. this.component = _component
  6. }
  7. // 委托给被修饰者执行
  8. @Override
  9. public void operate(){
  10. this.component.operate();
  11. }
  12. }

具体的装饰类

  1. public class ConcreteDecorator1 extends Decorator{
  2. // 定义被修饰者
  3. public ConcreteDecorator1(Component _component){
  4. super(_component)
  5. }
  6. //定义自己的修饰方法
  7. private void method1(){
  8. # 修饰操作
  9. }
  10. public void operate(){
  11. this.method1();
  12. super.operate();
  13. }
  14. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注