Паттерн: Стратегия (Strategy)
Фрагмент: контект, параметризированный стратегией с помощью java Generics [java]
  1. package strategy;
  2.  
  3. public class Context<T extends Strategy> {
  4. private T strategy;
  5.  
  6. public void Operation() {
  7. strategy.DoAlgorithm();
  8. }
  9. }