Onde implementar as Regras de Negócio?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Franclayton
What is classpath?

Membro desde: 20/05/2008 09:15:53
Mensagens: 5
Offline

Pessoal!

Pergunta que não quer calar: ONDE IMPLEMENTAR AS REGRAS DE NEGÓCIO?

Onde trabalho (ambiente WEB) temos a seguinte arquitetura:

Modelo MVC, onde:

VIEW: somente JSP com algumas validações javascript, e alguns componentes (ex: listagem).

ACTION: É A LETRA "C" (CONTROLLER) do modelo MVC? AQUI QUE É IMPLEMENTADA AS REGRAS DE NEGÓCIO ou somente tratamento das requisições e redirecionamentos?

MODEL: É A LETRA "M" (MODELO) do modelo MVC? OU AS REGRAS DE NEGÓCIO DEVE SER IMPLEMENTADAS AQUI?

Temos também:

DTO: que é o espelho das tabelas (cada tabela tem seu respectivo DTO)

FORM: representar o Formulário

DAO: nossa camada de persistencia

RESUMINDO:

JSP faz uma requisição para a ACTION que por sua vez captura os dados do Form, carrega os respectivos DTO´s e chama um método na MODEL (ex: listarCliente) que vai em uma DAO respectiva (que faz todo o acesso ao Banco). A DAO retorna para a MODEL que retorna para a ACTION que faz o devido redirecionamento.

A Dúvida é: Onde implementar as REGRAS DE NEGÓCIO?

Ex: Se eu tenho que adicionar uma informação a mais (que não está no banco) em uma combo-box, onde devo implementar? na ACTION ou na MODEL?

Um simples if é uma REGRA DE NEGÓCIO?

Escrevi demais...
Deluxe
GUJ Ranger
[Avatar]

Membro desde: 26/04/2006 15:50:49
Mensagens: 793
Localização: Distrito Federal
Offline


Cara vo te falar em cima do JSF

VIEW

Fica o que vai integari com a jsp, no caso o que recebe e respode..
Classe BEAN
Classe POJO
por exemplo..

MODELO

Aqui fica as classes e interfaces para acessar o banco
Classe HibernateDAO
Classe JDBCDAO

CONTROL

Aqui fica o controle de tudo..
no caso do JSF, aqui geralmente fica o Facade que e o cerebro da aplicacao, ele que pega dados da Classe Bean e manda pra as classes Dao..
Classe Facade

basicamente isso..

A pagina jsp se comunica com o Bean, o Bean comunica com o Facade e o Facade se comunica com o DAO..
as execoes tb sao tratadas no Facade..

Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensiar o que eu não sei...
Tecnoage
GUJ Master

Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline

Deluxe wrote:
Cara vo te falar em cima do JSF

VIEW

Fica o que vai integari com a jsp, no caso o que recebe e respode..
Classe BEAN
Classe POJO
por exemplo..

MODELO

Aqui fica as classes e interfaces para acessar o banco
Classe HibernateDAO
Classe JDBCDAO

CONTROL

Aqui fica o controle de tudo..
no caso do JSF, aqui geralmente fica o Facade que e o cerebro da aplicacao, ele que pega dados da Classe Bean e manda pra as classes Dao..
Classe Facade

basicamente isso..

A pagina jsp se comunica com o Bean, o Bean comunica com o Facade e o Facade se comunica com o DAO..
as execoes tb sao tratadas no Facade..


Cara, sob sua análise.. BEAN = ManagedBean e Classe POJO = "QQer classe"???

Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
Franclayton
What is classpath?

Membro desde: 20/05/2008 09:15:53
Mensagens: 5
Offline

Esqueci, usamos o STRUTS...
Deluxe
GUJ Ranger
[Avatar]

Membro desde: 26/04/2006 15:50:49
Mensagens: 793
Localização: Distrito Federal
Offline

ah certo..
a classe pojo e onde fica os objeto, os dados da classe.
tipo

public class Pessoa{

String nome
String senha
String login

gets e sets

Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensiar o que eu não sei...
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Deluxe wrote:Pergunta que não quer calar: ONDE IMPLEMENTAR AS REGRAS DE NEGÓCIO?

Nos objetos de negócio (Não é xxxBO pelo amor de Deus)

Seus objetos de negócio devem estar na camada de domínio e serão acessados pela sua "action" de alguma forma, seja diretamente, seja por uma Service Layer/Application Layer.

Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

View: apresentação, interface direta com o usuário/camada cliente.

Controller: trata dos eventos entre a View e o Model, têm o controle de fluxo de dados.

Model: regras de negócio, acesso à banco, e outros recursos.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
Tecnoage
GUJ Master

Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline

Franclayton wrote:Pessoal!

Pergunta que não quer calar: ONDE IMPLEMENTAR AS REGRAS DE NEGÓCIO?

Onde trabalho (ambiente WEB) temos a seguinte arquitetura:

Modelo MVC, onde:

VIEW: somente JSP com algumas validações javascript, e alguns componentes (ex: listagem).

ACTION: É A LETRA "C" (CONTROLLER) do modelo MVC? AQUI QUE É IMPLEMENTADA AS REGRAS DE NEGÓCIO ou somente tratamento das requisições e redirecionamentos?

MODEL: É A LETRA "M" (MODELO) do modelo MVC? OU AS REGRAS DE NEGÓCIO DEVE SER IMPLEMENTADAS AQUI?

Temos também:

DTO: que é o espelho das tabelas (cada tabela tem seu respectivo DTO)

FORM: representar o Formulário

DAO: nossa camada de persistencia

RESUMINDO:

JSP faz uma requisição para a ACTION que por sua vez captura os dados do Form, carrega os respectivos DTO´s e chama um método na MODEL (ex: listarCliente) que vai em uma DAO respectiva (que faz todo o acesso ao Banco). A DAO retorna para a MODEL que retorna para a ACTION que faz o devido redirecionamento.

A Dúvida é: Onde implementar as REGRAS DE NEGÓCIO?

Ex: Se eu tenho que adicionar uma informação a mais (que não está no banco) em uma combo-box, onde devo implementar? na ACTION ou na MODEL?

Um simples if é uma REGRA DE NEGÓCIO?

Escrevi demais...


1 - DTO não é "espelho" de tabelas
2 - vc não rpecisa de um FORM ( a não ser que seja um tosco-form do struts1.x
3 - Eliminar ao máximo regras de negócio na view.
4 - Não entendi quando vc diz que "A DAO retorna para a MODEL"
5 - Sim, suas regras de negócio ficam no model, se vc prefere pensar assim.

This message was edited 1 time. Last update was at 20/06/2008 14:16:53


Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
lucifeler
JavaChild
[Avatar]

Membro desde: 13/02/2007 21:34:57
Mensagens: 101
Localização: São Paulo
Offline

Bom leia o que o Shoes escreveu sobre MVC e Camadas talvez possa ajudar, ele explica a diferença e o papel de cada um no projeto
MVC e Camadas

A sabedoria é o melhor guia e a fé, a melhor companheira. Deve-se pois, fugir das trevas da ignorância e do sofrimento, deve-se procurar a luz da Iluminação.(Sakyamuni)
Franclayton
What is classpath?

Membro desde: 20/05/2008 09:15:53
Mensagens: 5
Offline

Tecnoage wrote:
Franclayton wrote:Pessoal!

Pergunta que não quer calar: ONDE IMPLEMENTAR AS REGRAS DE NEGÓCIO?

Onde trabalho (ambiente WEB) temos a seguinte arquitetura:

Modelo MVC, onde:

VIEW: somente JSP com algumas validações javascript, e alguns componentes (ex: listagem).

ACTION: É A LETRA "C" (CONTROLLER) do modelo MVC? AQUI QUE É IMPLEMENTADA AS REGRAS DE NEGÓCIO ou somente tratamento das requisições e redirecionamentos?

MODEL: É A LETRA "M" (MODELO) do modelo MVC? OU AS REGRAS DE NEGÓCIO DEVE SER IMPLEMENTADAS AQUI?

Temos também:

DTO: que é o espelho das tabelas (cada tabela tem seu respectivo DTO)

FORM: representar o Formulário

DAO: nossa camada de persistencia

RESUMINDO:

JSP faz uma requisição para a ACTION que por sua vez captura os dados do Form, carrega os respectivos DTO´s e chama um método na MODEL (ex: listarCliente) que vai em uma DAO respectiva (que faz todo o acesso ao Banco). A DAO retorna para a MODEL que retorna para a ACTION que faz o devido redirecionamento.

A Dúvida é: Onde implementar as REGRAS DE NEGÓCIO?

Ex: Se eu tenho que adicionar uma informação a mais (que não está no banco) em uma combo-box, onde devo implementar? na ACTION ou na MODEL?

Um simples if é uma REGRA DE NEGÓCIO?

Escrevi demais...


1 - DTO não é "espelho" de tabelas
2 - vc não rpecisa de um FORM ( a não ser que seja um tosco-form do struts1.x
3 - Eliminar ao máximo regras de negócio na view.
4 - Não entendi quando vc diz que "A DAO retorna para a MODEL"
5 - Sim, suas regras de negócio ficam no model, se vc prefere pensar assim.



Opa!
Estou cheio de dúvidas!

1 - o que seria um DTO então?
2 - como utilizo Struts não tenho que utilizar Form? JSP sem Form?
3 - minha view não tem regra de negócio, somente html
4 - Model acessa a DAO. Na DAO acesso o banco (ex: um select que adiciono a uma collection) e a DAO retorna essa collection para a Model que por sua vez retorna para a Action
5 - Procuro fazer as regras de negócio na Model, onde vc sugere?
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Franclayton wrote:
Estou cheio de dúvidas!

1 - o que seria um DTO então?
2 - como utilizo Struts não tenho que utilizar Form? JSP sem Form?
3 - minha view não tem regra de negócio, somente html
4 - Model acessa a DAO. Na DAO acesso o banco (ex: um select que adiciono a uma collection) e a DAO retorna essa collection para a Model que por sua vez retorna para a Action
5 - Procuro fazer as regras de negócio na Model, onde vc sugere?


1 - DTO é um objeto para agregar dados que serão transmitidos via rede para outra máquina. Isso é para diminuir a quantidade de objetos trafegando na rede.

3 - Bom

4 - É estranho falar que Model acessa DAO já que o DAO é apenas um dos componentes da Model, mas está certo.

5 - Regras de negócio começam a partir do momento que os dados entram na Model e terminam quando os dados a deixam. Mas isso não significa que tudo é negócio. Preocupe-se em separar as responsabilidades.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
fmeyer
Moderador
[Avatar]
Membro desde: 22/02/2005 17:26:29
Mensagens: 1583
Localização: Sao Paulo
Offline

Implemente suas regras de negocio em uma engine de regras

Fernando Meyer http://fernandomeyer.com
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team