Паттерн: Цепочка обязанностей (Chain of Responsibility)
Фрагмент: единая функция переадресации запросов [java]
  1. package chainOfResponsibility;
  2.  
  3. public class Handler {
  4.  
  5. public void HandleRequest(Request req) {
  6. switch (req.GetKind()) {
  7. case Request.HELP:
  8. HandleHelp(req);
  9. break;
  10. case Request.PRINT:
  11. HandlePrint(req);
  12. break;
  13. default:
  14. // ...
  15. break;
  16. }
  17. }
  18.  
  19. protected void HandlePrint(Request req) {
  20. // ...
  21. }
  22.  
  23. protected void HandleHelp(Request req) {
  24. // ... }
  25. }