模版方法模式

1.定义

模板方法模式 定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤.

维基百科-模板方法模式

2.实现

模板方法(Template Method)模式

  • 抽象模版(Abstract Class)角色
  • 具体模版(Concrete Class)角色

抽象模版: 定义了一个或多个抽象操作,以便让子类实现

/**
 * 抽象模版(Abstract Class)角色
 */
public abstract class AbstractClass {

    public abstract void init();

    public void showResult(){
        init();
        System.out.println("显示结果!");
    }
}

具体模版: 实现父类所定义的一个或多个抽象方法

/**
 * 具体模版(Concrete Class)角色
 */
public class ConcreteClass extends AbstractClass {

    @Override
    public void init() {
        System.out.println("初始化...");
    }
}

测试

/**
 * 测试使用
 */
public class TemplateMethodClient {

    public static void main(String[] args) {
        AbstractClass clazz = new ConcreteClass();
        clazz.showResult();

        // stdout
        // 初始化...
        // 显示结果!
    }
}

results matching ""

    No results matching ""