Um banco de investimento extrai informações do Ipeadata e a...

Próximas questões
Com base no mesmo assunto
Q2383093 Programação
Um banco de investimento extrai informações do Ipeadata e as envia para seus principais clientes corporativos. Os dados devem ser enviados, preferencialmente, no formato XML, porém, caso não seja possível, podem ser enviados no formato JSON. Se ainda assim não for possível enviá-los, o formato de texto deve ser utilizado.
As classes inicialmente criadas para solucionar esse problema são as seguintes:

package persistencia;
Imagem associada para resolução da questão


Qual princípio SOLID é violado no design da solução apresentada?
Alternativas

Comentários

Veja os comentários dos nossos alunos

O princípio SOLID que é violado no design da solução apresentada é o princípio da Responsabilidade Única (Single Responsibility).

De acordo com esse princípio, uma classe deve ter apenas uma razão para mudar. No entanto, no design inicial, a classe responsável por enviar dados aos clientes corporativos do banco de investimento tinha várias responsabilidades: lidar com diferentes formatos (XML, JSON e texto) e gerenciar o envio dos dados. Isso viola o princípio da responsabilidade única, pois há mais de uma razão para alterar essa classe.

Portanto, a alternativa correta é E. Single responsibility.

Gabarito: A

Boa questão, para fazer o cara pensar. Então ali a questão que todas as classes fazem a mesma coisa do ponto de vista de funcionalidade então a Dependência deveria estar numa classe abstrata e não na implementação diretamente, esse é o princípio da inversão de dependência. Logo, deveria existir uma classe abstrata ou interface que tivesse os métodos ali comuns e assim as classes concretas apenas implementam ou herdam da classe. Gabarto letra A.

aproveite e revise:

Single-responsibility: a class should have one and only one reason to change, meaning that a class should have only one job

Open-closed: objects or entities should be open for extension but closed for modification

Liskov Substitution: objects of a superclass shall be replaceable with objects of its subclasses without breaking the application

Interface Segregation: A client should never be forced to implement an interface that it doesn’t use, or clients shouldn’t be forced to depend on methods they do not use

Dependency inversion: Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo