Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Princípios SOLID — CESGRANRIO 2024

TI - Desenvolvimento de SistemasPrincípios SOLID
Código
cg057893
Banca
CESGRANRIO
Órgão
IPEA
Ano
2024
Cargo
TPP ( )
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; public class JSON {       public boolean open() {              // implementação irrelevante             return true;       }       public void close() {            // implementação irrelevante       }       public void write() {          // implementação irrelevante       }       public void read() {         // implementação irrelevante       } } package persistencia; public class PlainText {        public boolean open() {          // implementação irrelevante            return true;      }      public void close() {         // implementação irrelevante      }      public void write() {        // implementação irrelevante      }      public void read() {       // implementação irrelevante       } } package persistencia; public class XML { public boolean open() { // implementação irrelevante return true; } public void close() { // implementação irrelevante } public void write() { // implementação irrelevante } public void read() { // implementação irrelevante } } package cliente; import persistencia.*; import java.io.IOException;   public class Cliente {        String nome;        String cpf;        String e_mail;        public void exporta(String dados) throws IOException{             XML x=new XML();             if( !x.open() ) {                             JSON j=new JSON();                             if( !j.open() ) {                                          PlainText t=new PlainText();                                          if( !t.open() )                                                        throw new IOException();                                          else {                                                        // código para escrita                                          }                            }                           else {                                         // código para escrita                            }          }          else {                           // código para escrita          }      } }   Qual princípio SOLID é violado no design da solução apresentada?
  1. ADependency inversion
  2. BInterface segregation
  3. CLiskov substitution
  4. DOpen–closed
  5. ESingle responsibility
Revelar gabarito e comentário

GabaritoA — Dependency inversion

Link permanente: /questoes/cg057893