Srs(a),
Dentre todos atributos e metodos de uma classe, somente 1 método precisa ter corpo diferente para cada objeto.
Como modelamos isso?
Obs.: Esse metodo terá umas 15 implementações diferentes.
Agradecido.
Srs(a),
Dentre todos atributos e metodos de uma classe, somente 1 método precisa ter corpo diferente para cada objeto.
Como modelamos isso?
Obs.: Esse metodo terá umas 15 implementações diferentes.
Agradecido.
Como assim “corpo diferente para cada objeto”?
A assinatura do metodo é a mesma, porém a implementação não.
Ex.: Se codigo do objeto for 123, executar metodo A.
Só que terei uns 30 codigos de objeto. E umas 15 implementações diferentes.
public void configurar(){
if (this.codigo == 1)
...
else if (this.codigo == 2)
...
else if (this.codigo == 30)
...
}
Eu faria algo mais ou menos assim:
class ObjetoXYZ {
...
}
interface Configurador {
boolean suportaTipo(int tipo);
void configurar(ObjetoXYZ objeto);
}
class Configurardor123 implements Configurador {
boolean suportaTipo(int tipo) {
return tipo == 1 || tipo == 2 || tipo == 3;
}
void configurar(ObjetoXYZ objeto) {
// Faz alguma coisa
}
}
// Ai vc pode ter uma classe que possui uma instancia de todos os configuradores
class ConfiguradorFactory {
List<Configurador> list;
// Inicia a lista e adiciona as instancias de configuradores
ConfiguradorFactory() {
..
this.list.add(new Configurardor123());
... // Mais instancias de configuradores
}
Configurador getConfigurador(int tipo) {
// Faz um loop na lista de retorna o tipo especifico
if(configurador.suportaTipo(tipo)) {
return configurador;
}
}
// Essa classe deve ser um singleton
}
o q vc postou naum implementa nada é só tomada de decisäo…
Olha a ideia e não o código, pois o código não tem nada mesmo.
Bom pensamento. Muito grato.