Понимание шаблона метода шаблона

Насколько я понимаю, метод 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?

Ответы на вопрос(2)

Ваш ответ на вопрос