【发布时间】:2021-03-24 09:14:26
【问题描述】:
使用在抽象类之外创建的方法是否会扰乱模板方法设计模式?如果我创建 MyOwnMethod 并在 a 方法中调用它,它仍然是模板方法模式吗?
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() {}
}
【问题讨论】:
-
为什么没有额外的方法?
-
那么这些附加方法是否应该是私有的,让用户只能从 main 调用 TemplateMethod()?
-
为什么不被保护/私有? (很抱歉通过提问来回答,但您的问题到底是什么)
-
好的,答案是没关系,我可以创建自己的方法,并且仍然保持模板方法设计模式的想法是吗?
-
我写的代码还是模板方法设计模式吧?
标签: java oop design-patterns template-method-pattern