[quote=rmendes08][quote]
o problema seria mais por conta de enxergar que por exemplo ao instanciar a classe do microondas ele so instanciar uma vez a classe potencia entre outras…
[/quote]
Mas você não pode fazer isso, cada microondas deve ter sua própria instância de Potencia. Imagine se o mundo real fosse assim, você ajusta a potência do seu microondas e a mudança é refletida nos microondas de todo mundo ?[/quote]
claro, eu n discordei, agora entendi, na verdade vc centraliza o controle e um objeto das demais composições…
interessante…
agora a noite irei trabalhar nessa questão
retrabalhei a classe potencia
package modelo;
import controle.ExcessaoPotenciaBaixa;
import controle.ExcessaoPotenciaMaxima;
public class Potencia {
private int index = -1;
public void aumentarPotencia() throws ExcessaoPotenciaMaxima {
try {
if (Tipo.getTipo(index) == Tipo.MÁXIMA) {
throw new ExcessaoPotenciaMaxima();
}
index++;
mostrar();
} catch (ExcessaoPotenciaMaxima e) {
System.out.println(e.getMessage());
}
}
public void diminuirPotencia() throws ExcessaoPotenciaBaixa {
try {
if (Tipo.getTipo(index) == Tipo.BAIXA) {
throw new ExcessaoPotenciaBaixa();
}
index--;
mostrar();
} catch (ExcessaoPotenciaBaixa e) {
System.out.println(e.getMessage());
}
}
private void mostrar() {
System.out.println("Potencia: " + Tipo.getTipo(index));
}
}
enum Tipo {
BAIXA(1), MÉDIA(2), ALTA(3), MÁXIMA(4);
private int index;
private Tipo(int index) {
this.index = index;
}
public static Tipo getTipo(int index) {
for (Tipo tipo : Tipo.values()) {
if (index == tipo.ordinal()) {
return tipo;
}
}
return null;
}
}