Separação de camadas - estou indo bem?

3 respostas
danieldestro

Caros,

To refatorando um projeto meu, na verdade estou o refazendo todo, e estou tentando separar algumas coisas ao máximo.

Cada tela do programa (desktop) tem um controler associado, e este trabalha com uma interface para a tela, e não diretamente com ela. Isso me ajuda a escolher qualquer implementação da tela (seja Swing, SWT, Thinlet ou papel toalha).

Então para exibir uma tela eu faço algo assim:

WorkAreaController w = new WorkAreaController(); w.setParentController( this ); w.getGUI().setParentComponent( podeSerUmJPanel ); //recebe object w.init();

Em setParentController() eu falo pro controller da tela que abrí, qual o controller que o chamou.

getGUI() me retorna um referência para a tela controlada pelo novo controler e no seu método setParentComponent() eu passo o container (objeto visual) no qual a nova tela será posicionada (caso necessário).

E com init() eu mando o novo controller assumir e exibir a tela.

Preciso de opiniões sinceras sobre esta escolha, se está adequada, complicada ou qualquer outra coisa.

Abraços
Daniel Destro

3 Respostas

C

Se funcionar muito bem (eficaz), o importante é a organização do projeto. Se o diagrama de classes estiver legivel e bem organizadom maravilha. O importante é não poluir demais o projeto com classes desnecessárias.

pcalcado

Ta interessante…

Entao, voce diria ao controller (Factory ou IoC) para usar a interface X. Uma implementaçao para web poderia ser uma classe que faz um forward pra uma JSP, um JAlgumaCoisa que implementa a interface, um XmlWriter que joga um XML num outputstream…

eh isso?

Thiago_Senna

Daniel, blz!!

Bom… é legal essa arquitetura… mas a minha opinião por enquanto é a seguinte!

Acho esta solução bém elaborada, mas muito difícil! Eu optaria por algo mais simples.

A minha inteção seria por exemplo seria fazer dos meus action listener o meu controle… Ou seja, associo um botão a uma classe que fica escutando o evento do botão, e pronto… Mas eu ainda num tenho certeza se isso é bom… tenho que colocar isso em prática para ver o que rola.

Se vc está fazendo esta arquitetura para aprender e aperfeiçoar, blz, mas acho muito embaçado para outras pessoas dar manutenção no código.

Trabalho em um código que é mais ou menos neste estilo, e odeio dar manutençao nele!

Abraços!
Thiago

Criado 22 de junho de 2005
Ultima resposta 22 de jun. de 2005
Respostas 3
Participantes 4