No contexto de Projetos Orientados a Objetos, padrões de design
são soluções generalizadas para problemas comuns de design de
software.
Considere uma situação em que um desenvolvedor foi incumbido de
elaborar um sistema de criação de documentos de diversos
formatos, como Texto, Planilha e Apresentação, a serem definidos
com base nos comandos do usuário.
Para lidar com esses requisitos, o padrão de design de software mais
adequado seria o