Questão nº 72
Questão de Boas Práticas e Padrões em TIC · FCC PMSP Analista TIC 2025 (nº 72)
Durante a manutenção do sistema de licitações de uma prefeitura, a equipe de TI identificou que diversas partes do código se tornaram difíceis de modificar devido à alta interdependência entre os módulos. Um dos analistas propõe a aplicação de princípios de design que favoreçam a evolução do código e a aplicação do DRY. O problema identificado pode ser resolvido adequadamente refatorando o código para encapsular as funcionalidades comuns em classes abstratas, aplicando o padrão
- AAdapter.
- BTemplate Method. (alternativa correta)
- CCommand.
- DFacade.
- EMemento.
Resposta comentada
Gabarito Alternativa B
O padrão Template Method permite definir o esqueleto de um algoritmo em uma classe base (abstrata), deixando que as subclasses implementem ou sobrescrevam etapas específicas desse algoritmo sem alterar sua estrutura geral.
(A) Incorreta: O Adapter é usado para permitir que interfaces incompatíveis colaborem, adaptando uma interface existente a outra que o cliente espera, e não para encapsular funcionalidades comuns de um algoritmo.
(B) Correta: O Template Method é ideal para este cenário, pois permite encapsular a lógica comum (o esqueleto do algoritmo) em uma classe abstrata, enquanto as partes que variam são implementadas pelas subclasses. Isso promove o DRY (Don't Repeat Yourself) e facilita a evolução do código ao isolar as mudanças nas etapas específicas, reduzindo a interdependência.
(C) Incorreta: O Command encapsula uma requisição como um objeto, permitindo parametrizar clientes com diferentes requisições, enfileirar ou registrar requisições, e suportar operações de desfazer, não lidando com a estrutura comum de um algoritmo.
(D) Incorreta: O Facade fornece uma interface unificada e simplificada para um conjunto complexo de interfaces em um subsistema, facilitando o uso, mas não resolve o problema de interdependência em algoritmos comuns ou a aplicação do DRY neste contexto.
(E) Incorreta: O Memento é usado para capturar e externalizar o estado interno de um objeto sem violar o encapsulamento, permitindo que o objeto seja restaurado a esse estado posteriormente, sem relação com a refatoração de algoritmos comuns.
Fonte: FCC PMSP Analista TIC 2025 Analista de Planejamento e Desenvolvimento Organizacional - Tecnologia da Informação e Comunicação (Caderno Tipo 001). Reproduzida para fins de estudo.