title: Using Template Method and Strategy together
body: <p>Gang of Four sums up the difference between <em>Template Method</em> and <em>Strategy</em> as follows: </p>
  
  <blockquote>
    <p>Template methods use inheritance to vary part of an algorithm.
    Strategies use delegation to vary the entire algorithm.</p>
  </blockquote>
  
  <p>What are the scenarios where <strong>combining</strong> two designs would be justified and how their relationship would look like?</p>
  
  <p>Trivial example would involve delegating to Strategy inside hook methods of a Template Method, however, I cannot think of a good justification for such design. Additionally, instead of delegating to subclass one might delegate to Strategy directly. But then, without inheritance, we cannot talk about Template Method at all.</p>