j2me mvc

3 respostas
R

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!

3 Respostas

C

Olá,
Acho q em relação a desempenho não vai mudar nada.
Mas em relação a tamanho da aplicação muda. Pois se vc implementar o controle de eventos numa classe soh é melhor que implementar várias vezes em cada tela. Porém a organização eu acho q fica pior. Pq para saber o que um comando faz vc tem q ir na outra classe olhar.
E cuidado com MVC pois custa em tamanho de aplicativo, e isso não é legal pra aplicativos j2me.
É o que eu acho.

Falow!

P

“clv”:
Olá,
Acho q em relação a desempenho não vai mudar nada.
Mas em relação a tamanho da aplicação muda. Pois se vc implementar o controle de eventos numa classe soh é melhor que implementar várias vezes em cada tela. Porém a organização eu acho q fica pior. Pq para saber o que um comando faz vc tem q ir na outra classe olhar.
E cuidado com MVC pois custa em tamanho de aplicativo, e isso não é legal pra aplicativos j2me.
É o que eu acho.

Falow!

Eu concordo, porque em aplicações de pequeno porte temos que pensar o tempo todo na performance e no tamanho do aplicativo, claro que com o passar do tempo esta preocupação vai diminuir, porque o poder de processamento e armazenamento dos cleulares está aumentando…

R

Ok,
decidi o q fazer.

Vou implementar desta maneira(já que não vai ser uma app tão grande) e ver como fica.
Assim poderei tirar conclusões das duas maneiras.

Valeu Galera!

Criado 16 de junho de 2005
Ultima resposta 16 de jun. de 2005
Respostas 3
Participantes 3