GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Padrão DAO e MVC

No caso eu estou trabalhando com DAO dentro da camada MODEL do MVC. Então se por exemplo eu quiser que todo o nome passado fique maiusculo eu defino na classe DTO (padrão dao) dentro da camada MODEL do MVC?

Isso pode ser ate uma validação do seu POJO, basta vc saber onde esta fazendo, na VIEW via JavaScript, no CONTROLLER quando vc recebe os parametros, acho que o menos recomendado seria no MODEL ante da inserção mais não sei se implica algo ficaria
Trate isso na camada que mais visivel fica normalmente eu trataria isso no Controller posso estar errado mais acho que isso vai de acordo com seu objetivo.Que de fato seria separar bem cada camada.

.

O padrão DAO e o padrão MVC tem fins completamente distintos. O objetivo do DAO (Data Access Object) é abstrair o acesso ao mecanismo de persistência, seja ele uma base de dados, um arquivo de texto ou alguma interação com web services. Utilizando DAO você poderia alterar esse mecanismo de persistência sem impactar no restante da sua aplicação.

O padrão MVC, por outro lado, define um modelo de interação entre Model, View e Controller. Estes componentes podem ou não estar em camadas separadas. Veja:

http://fragmental.com.br/wiki/index.php/MVC_e_Camadas.html

No MVC tradicional o Controller interage com o Model, que notifica a View quando seu estado é alterado (usando o padrão Observer, por exemplo). Há também o que se chama de MVC 2, onde o invés de o Model notificar a View, é o Controller que faz este trabalho (mais comum em aplicações Web).

Se você analisar um framework MVC, como o spring MVC a separação fica clara. Você tem um controller que recebe requisições do usuário. Este controller interage com o Modelo e retorna para a View o novo estado. Se o modelo acessa diretamente o DAO, ou acessa um repositório, ou acessa um serviço, isso não diz respeito ao MVC, afinal de contas o MVC nem sabe o que é isso. =D