Você está na página 1de 2

Bem, vejamos: Foram duas questes: A primeira era pra resolver um problema de uma empresa que usava uma

classe QuadradoAntigo que no era mais pra ser usada. Como isso foi criada uma nova classe QuadradoNovo e uma Interface IFiguraGeometrica: O problema que, mesmo querendo parar de usar a classe antiga e passar a usar a nova, a empresa precisa manter a classe antiga por causa dos mtodos area(); e preimetro();. Com isso (pelo menos o que eu entendi e fiz), foi necessrio reescrever a classe nova, implementar a Interface com a nova reescrita e manter a antiga s pra poder usar os mtodos. A segunda parte era uma pergunta que pedia pra explicar porque que a empresa teve que deixar de usar a antiga. A minha resposta foi porque a classe antiga usava um mtodo para crtiar um quadrado com 4 parmetros que poderam criar um quadrado inconsistente, com lados diferentes. Porm um quadrado, por definio, tem que ter 4 lados iguais. Desculpe se a explicao no ficou boa, mas no d pra explicar de outra forma por email. Tem um monte de detalhe que no d pra botar no papel simplesmente. - Favor nao repassar e quem for imprimir, tome cuidado... A Prova Basicamente isso aqui: Na prova j tem as implementaes das classes: QuadradoAntigo, QuadradoNovo e a IFigur aGeometrica. Ele pede uma classe QuadradoAdapter. A empresa xpto................................................... substitua a im plementao da classe QuadradoAntiga usando um adaptador. Obs.: o que est de azul o que j tem na prova. public class QuadradoAntigo implements IFiguraGeometrica { protected int lado1; protected int lado2; protected int lado3; protected int lado4; public QuadradoAntigo(int a, int b, int c, int d) { lado1 = a; lado2 = b; lado3 = c; lado4 = d; } @Override public double area() { return lado1 * lado2; } @Override public double perimetro() { return lado1 + lado2 + lado3 + lado4; } }

public class QuadradoNovo { private int lado; public QuadradoNovo(int l) { lado = l; } public double calculaArea() { return lado * lado; } public double calculaPerimetro() { return lado * 4; } } package br.upis.turma181.creacional.adapter.p; public interface IQuadrado { double area(); double perimetro(); } RESPOSTA: public class QuadradoAdapter implements IFiguraGeometrica { private QuadradoNovo q; public QuadradoAdapter(int a, int b, int c, int d) { if (a== b && a== c && a == d) { q = new QuadradoNovo(a); } } @Override public double area() { return q.calcularArea(); } @Override public double perimetro() { return q.calcularPerimetro(); } }

Você também pode gostar