Uma coisa muito difícil para quem começa no mundo da programação é entender a Arquitetura MVC e se ele realmente é necessário (já que sem ela funciona e normalmente se aprende bem depois a fazer algo com MVC)
Antes de qualquer coisa leia esses links para entender melhor o que é MVC
Links sobre MVC
http://fragmental.com.br/wiki/index.php?title=MVC_e_Camadas
http://pt.wikipedia.org/wiki/MVC
http://msdevstudio.com/blog/2008/11/06/tutorial-mvc-no-flex-entendendo-a-logica/
Depois dos links acima vamos às minhas conclusões feitas sobre o MVC
Antes de qualquer coisa entenda uma coisa MVC <> programação em Camadas, Dividir em camadas estamos apenas organizando nossos componentes (no nosso caso OO normalmente as classes) e MVC é uma arquitetura ou|e padrões de projeto que mostra como devemos interagir com os nossos componentes para que fiquem menos acoplados e ajude na organização e manutenção dos nossos componentes.
Ok, você continua não entendendo o que é MVC, vamos então simplificar as coisas respondendo algumas Perguntas:
Pergunta 1
Janderson, eu tenho um site em JAVA que acho que está com arquitetura MVC, a arquitetura é a seguinte: tenho a View (JSP), Controller (httpService) e tenho a Model (DAO), isso é MVC?
Depende. Se sua JSP em hipótese nenhuma se comunica com a DAO, se o Httpservice pega informação do JSP e passa para a DAO ou da DAO passar para o HttpService e sua DAO enviar informação para JSP(não recomendado), a reposta é SIM.
View envia dados para Controller
Controller se comunica com View e Model
Model envia dados para Controller e View
Ou seja, se você respeitar o que cada Letra do MVC é responsável você estará usando MVC
Pergunta 2
Janderson, tenho um sistema feito em Java cuja camada de apresentação é em flex, arquitetura é a seguinte: CAMADA DADOS(Arquitetura DAO [JAVA]), CAMADA NEGÓCIO(arquitetura SOA[JAVA]) e CAMADA APRESENTAÇÂO(arquitetura MVC [FLEX]), posso considerar o meu MVC certo mesmo que ele esteja em apenas uma camada do meu projeto?
SIM. São em exemplos um pouco maior como este que entendemos melhor o que é ARQUITETURA MVC, MVC não tem nada haver com camadas, mais sim com um modelo(Design patterns) para mostrar como vamos interagir com os nossos componentes. Neste caso específico nossa model poderia ser uma classe que mapearia ou se comunicaria com um WebService ou RemoteObject para acessar nossa camada de NEGÓCIO ( que por sua vez se comunicaria com a de DADOS), a Controller seria os eventos e ações da tela e a View nosso MXML.
Resumindo
Model <> DAO mesmo que sua DAO seja a Model, ou seja, a DAO é responsável por gravar e ler os dados enquanto a Model é responsável por pedir para alguém para fazer isso, pode pedir para um Objeto remoto, para um WebService ou para própria DAO.
Controller é a responsável por fazer a interseção entre a View e a Model, pegando requisições da view e passando para a Model que por sua vez contendo a informação (não interessa como) pedida pela Controller retorna para a Controller ou para a própria View a informação desejada.
View só vai conter o código necessário para apresentação com o usuário e vai conhecer a controller para solicitar algo que seja necessário para o usuário, ou seja, se precisa de algo pede para Controller fazer e espera resposta do mesmo.
Por mais que tentamos mostrar na prática sempre vamos voltar um pouco para teoria já que MVC é um conceito e não um modelo exato de como você vai fazer. Existe N maneiras de arquitetar um MVC, o importante é que você sempre lembre o objetivo do MVC, assim você estará sempre usando MVC independente de camada, ferramentas,Frameworks ou não, linguagens…
Espero que ajude alguém e até a próx.




Pingback: TUTORIAL JAVA + FLEX NA PRÁTICA 4/6 | SaberProgramar.com
Pingback: Pattern Delegate e os Mocks - redeRIA | Agregador de noticias, artigos, tutoriais Flex, Flash, JavaFX, AJAX e Rich internet applications em geral!