Паттерн: Стратегия (Strategy)
Фрагмент: паметризация шаблона стратегией [C++]
  1. template <class AStrategy>
  2. class Context {
  3. void Operation)) { theStrategy .DoAlgorithm( ) ; }
  4. // ...
  5. private :
  6. AStrategy theStrategy;
  7. };
  8.  
  9. //...
  10. //Затем этот класс конфигурируется классом Strategy в момент инстанцирования:
  11. class MyStrategy {
  12. public:
  13. void DoAlgorithm( ) ;
  14. };
  15.  
  16. Context<MyStrategy> aContext;