Паттерн: Стратегия (Strategy)
Фрагмент: использование параметризованного контекста [java]
  1. package strategy;
  2.  
  3. public class Client2 {
  4. public static void main(String[] args) {
  5. /**
  6. * Новая стратегия в виде локального
  7. * внутреннего класса
  8. */
  9. class MyStrategy extends Strategy {
  10.  
  11. public void DoAlgorithm() {
  12. /* Переопределение стандартного поведения
  13. */
  14. }
  15. }
  16.  
  17. /* Теперь - используем */
  18. Context<MyStrategy> aContext;
  19.  
  20. /* дальнейшая логика
  21. * ...
  22. */
  23. }
  24. }