Magna Concursos

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?

 

Provas

Questão presente nas seguintes provas