Паттерн: Цепочка обязанностей (Chain of Responsibility)
Фрагмент: расширение схемы диспетчеризации подклассами [java]
  1. package chainOfResponsibility;
  2.  
  3. public class ExtendedHandler extends Handler {
  4.  
  5. public void HandleRequest(Request req) {
  6. switch (req.GetKind()) {
  7. case Request.PREVIEW:
  8. HandlerPreview(req);
  9. break;
  10. default:
  11. super.HandleHelp(req);
  12. break;
  13. }
  14. }
  15.  
  16. protected void HandlerPreview(Request req) {
  17. // ...
  18.  
  19. }
  20. }