Considere o seguinte trecho de um diagrama de classes UML q...
Considere o seguinte trecho de um diagrama de classes UML que modela um sistema de administração escolar.

O seguinte trecho de código em VB.NET utiliza as classes do diagrama acima. As linhas de código estão numeradas para delimitá-las quando aparecem em múltiplas linhas por questões de espaço.

Dentre as alternativas a seguir, assinale aquela que indica o design pattern usado no código apresentado.
Comentários
Veja os comentários dos nossos alunos
A) Prototype: É um padrão criacional que serve para criar novos objetos clonando uma instância existente (chamada de protótipo).
- Como identificar no código: Você verá uma interface ou classe que possui um método explicitamente chamado ou . O código cria o novo objeto duplicando um já configurado, em vez de usar a palavra-chave do zero.
B) Singleton: É um padrão criacional que garante que uma classe tenha apenas uma única instância em todo o ciclo de vida da aplicação, fornecendo um ponto de acesso global para ela.
- Como identificar no código: A classe terá um construtor privado (impedindo o uso de fora dela), um atributo estático privado que guarda a própria instância, e um método público estático geralmente batizado de .
C) Super factory: Este termo não é um padrão de projeto oficial catalogado pelo GoF (Gang of Four). Ele costuma ser um distrator em provas ou um apelido informal para o padrão Abstract Factory, que é uma "fábrica de fábricas" usada para criar famílias de objetos relacionados sem especificar suas classes concretas.
- Como identificar no código: Se a questão estiver usando como sinônimo de Abstract Factory, você verá interfaces abstratas de fábricas que instanciam outras fábricas menores antes de criar os produtos finais.
D) Simple factory: Não é considerado um padrão GoF oficial, mas sim uma abordagem/idioma de programação comum. Trata-se de uma classe simples com um método que centraliza a criação de objetos baseando-se em um parâmetro (como uma string ou enum).
- Como identificar no código: Geralmente possui uma classe chamada com um método estático contendo uma estrutura de ou que decide qual classe filha instanciar e retornar. Exemplo: .
E) Composite: É um padrão estrutural usado para representar estruturas de árvore (parte-todo). Ele permite que os clientes tratem objetos individuais (folhas) e composições de objetos (galhos) de maneira uniforme.
- Como identificar no código: Você verá uma interface comum implementada por componentes individuais e por uma classe contêiner. Essa classe contêiner possui uma lista/coleção de objetos do mesmo tipo da interface e métodos como ou para gerenciar os filhos.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo