Понимание шаблона метода шаблона
Насколько я понимаю, метод Template - это не что иное, как обычный метод, который вызывает виртуальные или абстрактные методы, определенные в дочернем классе. Я прав, или есть что-то еще важное в этом паттерне, по которому я скучаю?
abstract class Foo {
public void IamTemplateMethod() { // which will be called in child class object
method1(); // because this...
method2(); // ...or this method was called in me
}
public virtual void method1() { ... } // to be overriden in child class
public abstract void method2() { ... } // to be defined in child class
}
Если я прав, есть ли другие распространенные способы реализации метода Template?