Questão nº 23
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 23)
Natália está desenvolvendo um sistema financeiro, no qual os documentos podem receber diferentes tipos de tratamento, e pretende tirar proveito dos padrões de desenvolvimento. Para tratar os documentos, ela criou diversos processos, que serão colocados em uma fila. Assim, o documento passa por um dado processo da fila, é tratado e enviado para o processo seguinte.
Adotando essa estratégia, Natália usou o padrão de desenvolvimento denominado:
- AChain of Responsibility; (alternativa correta)
- BPrototype;
- CDecorator;
- DAbstract Factory;
- EFactory Method.
Resposta comentada
Gabarito Alternativa A
O padrão Chain of Responsibility permite que um objeto (a requisição) seja passado por uma sequência de objetos (manipuladores), onde cada manipulador decide se processa a requisição ou a passa para o próximo na cadeia.
- (A) Correta: O padrão Chain of Responsibility é ideal para este cenário. O "documento" é a requisição, e cada "processo" na "fila" atua como um manipulador. O documento passa de um processo para o seguinte, sendo tratado por aquele que for capaz ou designado para fazê-lo, ou simplesmente passando-o adiante na cadeia.
- (B) Incorreta: O padrão Prototype é usado para criar novos objetos copiando um objeto existente, e não para processar uma sequência de operações.
- (C) Incorreta: O padrão Decorator adiciona responsabilidades ou funcionalidades a um objeto dinamicamente, "embrulhando-o". Embora envolva "tratamento", não descreve um fluxo sequencial de processamento através de uma fila de manipuladores, mas sim a adição de camadas de funcionalidade a um único objeto. A armadilha aqui é confundir "diferentes tipos de tratamento" com a adição de funcionalidades (Decorator) em vez de etapas sequenciais de processamento (Chain of Responsibility). A menção de "fila" e "enviado para o processo seguinte" é a chave para descartar Decorator.
- (D) Incorreta: O padrão Abstract Factory fornece uma interface para criar famílias de objetos relacionados sem especificar suas classes concretas, sendo um padrão de criação, não de comportamento.
- (E) Incorreta: O padrão Factory Method define uma interface para criar um objeto, mas permite que as subclasses decidam qual classe instanciar, sendo também um padrão de criação.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.