https://simantaturja.github.io/design-patterns/template-method-pattern/
Template Method Design Pattern - Simanta Deb Turja