A HookMethod is a method which is called from a TemplateMethod. Functionality of the TemplateMethod is shifted to the HookMethod to allow for customisation of the TemplateMethod's functionality by later (e.g. in a derived class) changing the HookMethod. '''Example:''' public class Algorithm { public void templateMethod() { : . hookMethod(); . : } public void hookMethod() { // default implementation } } public class Refined''''''Algorithm extends Algorithm { public void hookMethod() { // refined implementation } }