Olá!
Estou fazendo um sistema, e estou com uma dúvida em relação a qual melhor maneira de controlar os eventos da app.
Sempre tive costume de que cada tela(Form) controlasse os eventos que ela sofresse(ou seja, a tela implements CommandListener e no seu contrutor coloco: this.setCommandListener(this)).
Estou pensado em fazem uma app no modelo MVC(ou quase isso), portando quero que somente uma classe especifica tome contas dos eventos e das decisões do meu sistema.
Assim, coloquei meu Midlet(poderia ser qualquer outra classe) para tomar conta dos eventos das telas(ou seja, o midlet implements CommandListener e no seu contrutor da tela: this.setCommandListener(midlet), sendo que midlet foi passado como parametro).
O código ficou mais ou menos assim:
MIDLET:
public class MidpPrincipal extends MIDlet implements CommandListener{
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(new Tela1(this));
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
public void commandAction(Command arg0, Displayable arg1) {
if(arg1 instanceof Tela1){
Tela1 tela1 = (Tela1) arg1;
Command comandoTela1 = tela1.getIrTela2();
if(arg0 == comandoTela1){
Display.getDisplay(this).setCurrent(new Tela2(this));
}
}else if(arg1 instanceof Tela2){
Tela2 tela2 = (Tela2)arg1;
Command comandoTela1 = tela2.getIrTela1();
if(arg0 == comandoTela1){
Display.getDisplay(this).setCurrent(new Tela1(this));
}
}
}
}
TELA(uma delas):
public class Tela1 extends Form {
private Command irTela2 = new Command("Tela2",1,1);
public Tela1(MidpPrincipal midletPrincipal) {
super("Tela1");
this.addCommand(irTela2);
this.setCommandListener(midletPrincipal);
}
public Command getIrTela2() {
return irTela2;
}
}
A pergunta é:
Qual a melhor maneira de implementação, em relação a desempenho e tal?
Digam suas opnioões!