Algumas dúvidas sobre MVC

Pessoal,

Estou tentando seguir esse padrão (MVC), porém invevitavelmente surgem algumas dúvidas.
Vamos lá, tendo JavaBeans como objetos de domínio (simples depósitos) vamos considerar que esses beans correspondem as minhas classes base. Agora para implementar a minha lógica de negócio (M) eu faço isso nos próprios beans ou eu extendo isso para uma classe filha de um bean? Se implementar a lógica no próprio bean ainda posso utilizá-lo com a tag <jsp:useBean…> do meu View, ou seja, agora tendo outros métodos além de getters e setters ele ainda continua sendo um JavaBean? Ou JavaBeans são classes isoladas e não devem prover herança para nenhuma outra classe?
Os métodos que correspondem à logica de negócio são invocados no Servlet ©? É correto a idéia de ter um servlet que concentre todos os request´s podendo chamar outro servlet para operações mais específicas?
Estou iniciando um projeto e gostaria de fazer a coisa da forma correta.
Agradeço desde já a contribuíção dos colegas…

Pois eh, meu amigo…

MVC é uma beleza quando vc nao tem que fazer um. 8)

Só pra voce ter uma ideia, os componentes do Swing usam MVC. Sim, verdade!! Só que cada componente usa MVC em si mesmo. Por exemplo, um JTextField tem como modelo um Document (acho que eh java.text.Document), como view um UIResource (pra poder usar o Look And feel) e o controle… bem, aí temos o controle. Tem Actions, tem Listeners, e toda a baguncinha normal…

um Bean nao precisa ter apenas getters e setters. Mas um bean que segue o MVC deveria, em tese, ter uma única das funcoes (só M, ou só V, ou só C), e delegar o resto.

Por exemplo, um JTable delega o Model para um TableModel e implementa TableModelListener. Ele faz apenas o controle, ou seja, quando o modelo muda, ele avisa o view para se repintar.

No caso de uma interface HTML, o view é o cara que gera a saída. Por exemplo, um forum como este usando MVC ia ter um componente para gerar a saída de uma única mensagem. O modelo ia ser um Bean com propriedades como “mensagem” e “autor”, o autor poderia ser um outro bean com “username” e “avatar”, ou sei lah. Cada um deles poderia ter sua propria estrutura MVC e ter seu model e seu view. Ou vc poderia ter um só modelo com, digamos, uma “nome do autor”, uma “avatar do autor”, uma “assinatura do autor”, uma “corpo da mensagem”, isso é questao de decidir a granularidade da coisa. Daí, internamente, seu modelo poderia delegar as funcoes para os beans de cima, ou vc poderia ter uma implementacao direta.

MVC é mesmo chato, pq te dá muitas opcoes, entao tem bastante espaco pra errar. Por outro lado, é ótimo pq vc nao fica preso a uma coisa que te atrapalha, vc pode mudar aquilo e continuar com MVC.

Boa sorte e []s!!!

Já ajudou, pois deu pra perceber que o negócio não é tão rígido assim. Mas tenho uma outra dúvida muito simples:

Dentro de um bean eu posso instanciar outros beans no scopo da classe? Pois fazendo isso eu não terei um método get/set para tal objeto. E aí, como fica? Essa é minha dúvida, eu só posso ter um atributo dentro de um bean que possuam get/set para ele ou posso ter instância de objetos que não terão os métodos get/set?