我可以使用模板方法设计模式在子类中创建自己的方法吗?

xtupzzrd  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(344)

使用在抽象类之外创建的方法是否会干扰模板方法设计模式?如果我创建myownmethod并在方法中调用它,它仍然是模板方法模式吗?

public abstract class TemplateMethodClass {

    public final void TemplateMethod() {
      a();
      b();
      c();
    }

    protected abstract void a();

    protected abstract void b();

    protected abstract void c();
}
public class SubClass extends TemplateMethodClass {

    public void MyOwnMethod() {
        System.out.println("I am not from template");
    }

    @Override
    protected void a() {
        MyOwnMethod();
    }

    @Override
    protected void b() {}

    @Override
    protected void c() {}
}
f2uvfpb9

f2uvfpb91#

模板方法设计模式是关于每个子类定义 backbone 中的特定步骤
其目的是通过将某些步骤推迟到子类来定义算法的框架,即允许子类以自己的方式定义算法的某些步骤,保持算法的结构完整。
步骤中可以有一个或多个方法,如果这些方法只在子类中使用,它们可能是私有的

相关问题