Паттерн: Шаблонный метод (Template Method)
Фрагмент: открытие, считывание документа [C++]
  1. void Application::OpenDocument (const char* name) {
  2. if (!CanOpenDocument(name)) {
  3. // работа с этим документом невозможна
  4. return;
  5. }
  6.  
  7. Document* doc = DoCreateDocument();
  8.  
  9. if (doc) {
  10. _docs->AddDocument(doc);
  11. AboutToOpenDocument(doc);
  12. doc->0pen();
  13. doc->DoRead();
  14. }
  15. }