decorator.java

来自「23种GOF模式的java代码实现」· Java 代码 · 共 36 行

JAVA
36
字号
package org.gof.structure.Decorator;

public class Decorator
    implements Work {

  private Work work;

  //额外增加的功能被打包在这个List中
  private java.util.ArrayList others = new java.util.ArrayList();

  //在构造器中使用组合new方式,引入Work对象;
  public Decorator(Work work) {
    this.work = work;
    others.add("挖坑");
    others.add("钉木板");
  }

  public void insert() {
    newMethod();
  }

  //在新方法中,我们在insert之前增加其他方法,这里次序先后是用户灵活指定的
  public void newMethod() {
    otherMethod();
    work.insert();

  }

  public void otherMethod() {
    java.util.ListIterator listIterator = others.listIterator();
    while (listIterator.hasNext()) {
      System.out.println( ( (String) (listIterator.next())) + " 正在进行");
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?