Anda di halaman 1dari 3

DISCIPLINA Padres de Projeto

PERODO: 2013.2

PROFESSORA: Mirna Maia

Lista de Exercicio 02

1) De acordo com o cdigo abaixo identifique quais os pontos falhos do ponto de


vista de acoplamento e coeso? Melhore o cdigo a fim de eliminar as falhas
encontradas.

import java.util.ArrayList;
import java.util.HashMap;

public class Celular {

private String marca;


private String modelo;
private String numero;
private String proprietario;
private String operadora;
private double preco;

private static ArrayList operadoras;


private static HashMap<String, String> prefixosDasOperadoras;

public Celular(String marca, String modelo, double valor){


this.marca = marca;
this.modelo = modelo;
this.preco = valor;
inicializarOperadorasESeusPrefixos();
}

private void inicializarOperadorasESeusPrefixos() {


operadoras = new ArrayList<String>();
operadoras.add("oi");
operadoras.add("claro");
operadoras.add("tim");
prefixosDasOperadoras = new HashMap();
prefixosDasOperadoras.put("oi_1", "8803");
prefixosDasOperadoras.put("oi_2", "8806");
prefixosDasOperadoras.put("oi_3", "8710");
prefixosDasOperadoras.put("oi_4", "8700");
prefixosDasOperadoras.put("claro", "9127");
prefixosDasOperadoras.put("tim", "99");
}

public void venderCelular(String dono, String numeroEscolhido, String


operadora){
this.proprietario = dono;
if(verificarOperadoraENumero(numeroEscolhido, operadora)){
this.numero = numeroEscolhido;
this.operadora = operadora;
}
System.out.println("ERRO");
}

private boolean verificarOperadoraENumero(String numeroEscolhido, String op)


{

Baseado no material da profa. Yuska Paola


String prefixo = numeroEscolhido.substring(4);
if (!operadoras.contains(op) ||
!prefixosDasOperadoras.containsKey(prefixo)){
return false;
}
return true;
}
}

2) Identifique no diagrama que segue se o uso de herana de classe foi bem


empregado. Justifique sua resposta.

3) O objetivo central do padro de projeto Expert consiste em definir, de forma


adequada, as responsabilidades de um tipo OO. Como identificar as
responsabilidades?

4) Implemente um sistema para controle de frota de uma empresa de transporte


intermunicipal (como Real Bus). Considere os princpios dos padres Expert,
Creator, Baixo Acoplamento e Alta Coeso.

5) O padro de projeto Creator pode ser considerado uma especialidade do


padro Expert. Esta afirmativa esta ou no correta? Justifique a sua resposta.

6) O que so padres de projeto?

7) O que significa reuso? Qual a forma de reuso mais adequada para os dias
atuais?

8) Considerando um jogo de damas defina quais as classes envolvidas, quais os


atributos e responsabilidades de cada uma das classes. Faa com que sua
soluo esteja coerente ao padro de projeto expert em seu sentido mais amplo.

9) Qual a relao existente entre os padres de projeto expert, creator, baixo-


acoplamento e alta coeso?

Baseado no material da profa. Yuska Paola


10) Considerando os conceitos bsicos de padres de projeto defina:
Acoplamento, Coeso e Reuso.
11) De acordo com o padro Creator e com o diagrama abaixo, indique qual(is)
classe(s) deve(m) ser responsvel(is) por instanciar quais objetos:

12) Diferencie Anlise e Projeto de Software. Contextualize sua resposta.

13) Considere a implementao de um sistema de informao utilizado por uma


empresa. Ao final de cada ms preciso:
a. Calcular o custo total com o pagamento dos funcionrios
b. Emitir a folha de pagamento por departamento
c. Calcular os benefcios adicionais (5% em cima do salrio) por
dependente do funcionrio.
Ilustre sua soluo, a partir de um diagrama de classes simplificado ou de um
rascunho em java, atributos e mtodos devem ser explicitados.

14) O mtodo calculaMedia, recebe dois objetos do tipo Retngulo e calcula a mdia
da rea de ambos. necessrio que este mesmo mtodo passe a tratar com Crculos
e Quadrado. Faa todas as alteraes necessrias para que o novo requisito seja
atendido.

...
public double calculaMedia(Retangulo r1, Retangulo r2){
double area1 = r1.getAltura() * r1.getLargura();
double area2 = r2.getAltura() * r2.getLargura()

return (area1 + area2)/2;


}
...

Baseado no material da profa. Yuska Paola

Anda mungkin juga menyukai