FC ConcursosFC Concursos

Questão FC370102

O analista Lucas está desenvolvendo o sistema orientado a objeto JustiSul. Em determinado módulo do JustiSul, o sistema instancia um objeto da classe Terceirizado de forma dinâmica

Padrões de Projeto (Engenharia de Software)

FGV · 2024

O analista Lucas está desenvolvendo o sistema orientado a objeto JustiSul. Em determinado módulo do JustiSul, o sistema instancia um objeto da classe Terceirizado de forma dinâmica, em tempo de execução, por meio da interface I3rd. A classe Terceirizado pertence a uma biblioteca proprietária externa, de forma que o JustiSul conhece apenas a especificação de I3rd, e não a de Terceirizado. Dentro de outro módulo, o sistema precisa instanciar um segundo objeto Terceirizado. Devido ao alto custo de uma nova inicialização dinâmica, Lucas optou por chamar o método cp3rd do objeto Terceirizado já criado. O cp3rd, declarado em I3rd e implementado na classe Terceirizado, retorna uma nova instância da classe, com um estado idêntico ao do objeto chamador.

 

Ao permitir a criação de novas instâncias pelo método cp3rd de uma instância existente, Terceirizado implementa o padrão de projeto:

  1. builder;
  2. singleton;
  3. prototype;
  4. factory method;
  5. abstract factory.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

O comportamento descrito corresponde ao padrão Prototype. Nesse padrão, a própria instância é responsável por criar sua cópia, delegando a clonagem ao objeto clonado.

No enunciado, a interface I3rd declara o método cp3rd e a classe externa Terceirizado implementa esse método retornando uma nova instância com estado idêntico. Isso é exatamente a essência do Prototype: um contrato de clonagem que permite criar objetos sem depender da classe concreta.

Vantagens: o cliente não conhece a implementação concreta (biblioteca externa) e evita custo alto de inicialização ao copiar o estado do objeto existente, obtendo uma nova instância independente.

Observação prática: a clonagem pode ser shallow ou deep, dependendo de como cp3rd copia os campos; o padrão só define a delegação da cópia ao próprio objeto.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo