Imagem de fundo

Um novo módulo do sistema em Java de peticionamento...

Um novo módulo do sistema em Java de peticionamento eletrônico de um Tribunal de Justiça precisa processar diferentes tipos de documentos (petições, recursos, decisões etc.) de forma polimórfica, garantindo que, independentemente do tipo específico, todos possam ser persistidos e auditados de maneira padronizada. A equipe técnica está debatendo a melhor abordagem para abstrair essa funcionalidade, considerando a complexidade para novos documentos. Em relação ao design orientado a objetos, focando em polimorfismo, assinale a alternativa que se apresenta mais adequada para o cenário, permitindo que novos tipos de documentos sejam facilmente adicionados sem modificar o código existente de persistência e auditoria.


A

Criar uma classe abstrata DocumentoBase e um método também abstrato processar(), implementando classes concretas como Peticao, Recurso e Decisao estendendo-a, utilizando herança para o polimorfismo


B

Criar classes DocumentoPeticao, DocumentoRecurso e DocumentoDecisao sem uma hierarquia comum, e utilizar sobrecarga de métodos em uma classe PersistenciaService para lidar com cada tipo


C

Usar composição, criando uma classe GerenciadorDocumentosBase que contenha instâncias de Peticao, Recurso e Decisao e chame métodos específicos para cada tipo, utilizando instanceof para verificar o tipo em tempo de execução


D

Definir uma interface Processavel com métodos como salvar() e auditar(), e fazer com que, por exemplo, Peticao, Recurso e Decisao implementem essa interface, utilizando polimorfismo de interface