Exemplo do GoF: arcabouço onde se tem classes Application e Document que
podem ser especializadas para diferentes tipos de aplicações, por exemplo
SpreadsheetApplication e SpreadsheetDocument, DrawApplication e
DrawDocument. A classe Applicatio define vários métodos modelo:
public void OpenDocument (String name) {
if (!CanOpenDocument(name)) { return; }
Document doc = DoCreateDocument();
if (doc != null) {
docs.AddDocument(doc);
AboutToOpenDocument(doc);
doc.Open();
doc.DoRead();
}
}