Camadas e MVC  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

Ola a todos surgiu uma dúvida extremamente importante para o desevimento profissional

Conceito

CAMADAS - Dizem como se agrupar os compoentes,,(objetos, classes etc).
MVC - Diz como interagem as camadas.

Em java nos separamos as Camadas da seguinte forma

Apresentação
Negocio
Persistencia

Certo?

Agora englobando o conceito MVC,como classificariamos essas camada em MODELO , VISAO , CONTROLE .

Tenho a seguinte susgestao


Visao - apresentacao

Controle -- Nao sei ??

Modelo -- Negocio , persistencia

mais acho que esta errado?

Alguem saberia me explicar isso?

Mais um pergunta,, quando fala programacao em tres camadas estamos nos referindo a ,,,Apresentacao,Negocio,persistencia ou a Modelo,Controle,Visao

Obrigado

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

O controle é o meio de campo entra a apresentação e o negócio. Ele faz por exemplo, validação de dados, identifica e estimula o objeto responsável por tratar as entradas. Depois, obtém a resposta e a devolve para a visão.

De certa forma, as classes de model do Swing (TableModel, ComboBoxModel) estão mais relacionados à função de controle, do que de modelo em si.

This message was edited 1 time. Last update was at 16/10/2009 13:54:11


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
YvGa
Virtual Machine Man

Membro desde: 07/03/2007 15:58:16
Mensagens: 517
Offline

A unica semelhanca entre divisao em tres camadas e MVC é que ambos contem tres componentes. Só. De resto uma coisa é uma coisa, outra coisa é outra coisa.



Visao - apresentacao

Controle -- Nao sei ??

Modelo -- Negocio , persistencia

mais acho que esta errado?


Nao esta errado nao, é por aí mesmo. O controle é uma fina camada entre o modelo e a visao. No caso do struts e JSF por exemplo, o controller sao o ActionServlet e o FacesServlet respectivamente (alguns desenvolvedores consideram tambem como parte do controller os actions e os managed beans, outros nao. Confesso que isso nunca me tirou muito o sono). As paginas jsp, jsf, etc... sao o View e o resto é o Model.

Um dos problema da confusao esta na enorme diferenca de MVC para web e MVC desktop, que é o original, com os observers e etc... Eles sao bem diferentes, tanto que eu acho que sequer deveriam ter o mesmo nome.

Ja a separacao apresentacao - negocio - persistencia, é feita procurando isolar as regras de negocio das regras de apresentacao e das regras de acesso a banco. MVC é uma das formas de isolar a apresentacao das regras de negocio, assim como DAO é uma das formas de separar acesso a banco das regras de negocio.

Perguntar se MVC e divisao em camadas sao a mesma coisa é como perguntar se DAO e divisao em camadas sao a mesma coisa.

This message was edited 1 time. Last update was at 16/10/2009 14:07:10


Paulo Borio
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

YvGa , obrigado por respoder,, intao programcao em 3 camadas seria

TELA
NEGOCIO
PERSISTENCIA

MVC É APENAS PARA SEPARA TELA DO NEGOCIO ,,, É ISSO?


IMAGINAMOS O SEGUINTE UM CADASTRO DE Pessoa

1 - camada

PessoaForm ( TELA , Visao)

----------------------------------------------------------------

2 - camada

PessoaControle ( ? , Controle )
Pessoa (NEGOCIO, Modelo)

----------------------------------------------------------------
3 - camada

PessoaDAO(PERSISTENCIA , Modelo)



se eu fosse dividir em 3 camadas seria isso?
e outro coisa a classe persistencia é um modelo?


Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline


Camadas é um termo fraco e depende bastante de contexto.

Quando ouço 3 camadas, posso tanto pensar na separação proposta pelo erickfm8, como tambem pensar em camadas físicas como por exemplo Browser, Servidor de aplicação e BD.

O velho problema da difenrença entre Tier e Layer, em que grande parte dos livros foi traduzido apenas como "Camada", ignorando a possibilidade de ser camada física ou lógica.

[]s




Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
YvGa
Virtual Machine Man

Membro desde: 07/03/2007 15:58:16
Mensagens: 517
Offline

Sim, é por ai mesmo. Mas tente desassociar os conceitos MVC de divisao em camadas. Sim em MVC a camada de persistencia faz parte do model.

Paulo Borio
YvGa
Virtual Machine Man

Membro desde: 07/03/2007 15:58:16
Mensagens: 517
Offline

Ferryman wrote:
Camadas é um termo fraco e depende bastante de contexto.

Quando ouço 3 camadas, posso tanto pensar na separação proposta pelo erickfm8, como tambem pensar em camadas físicas como por exemplo Browser, Servidor de aplicação e BD.

O velho problema da difenrença entre Tier e Layer, em que grande parte dos livros foi traduzido apenas como "Camada", ignorando a possibilidade de ser camada física ou lógica.

[]s




Pois é, tem mais esse problema pra gerar confusao. 3 camadas tambem podem ser cliente, servidor e servidor de BD, por exemplo. Aí a confusao ta feita de vez.

Paulo Borio
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

Sim,,,,, Mais o post desse Topico é para fazer o relacionamento em desenvolvimeto Desktop , priferencialmente usando swing,,, aguem mais para dar opnião?

obrigado a todos.

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

erickfm8 wrote:Sim,,,,, Mais o post desse Topico é para fazer o relacionamento em desenvolvimeto Desktop , priferencialmente usando swing,,, aguem mais para dar opnião?

obrigado a todos.


Então não tem nada de camadas propriamente, apenas uma separação lógica entre os componentes sendo o controler e a visão pertencente ao swing. Voce entra com o "model" e a configuração geral.
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

Mais eu nao poderia ter o seguinte

PessoaForm (TELA , VISAO)
------------------------------------------------
PessoaControle (NEGOCIO , Controle)
Pessoa(Negocio,Modelo)
--------------------------------------------
PessoaDAO(persistencia , Modelo)

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

erickfm8 wrote:Ola a todos surgiu uma dúvida extremamente importante para o desevimento profissional

Conceito

CAMADAS - Dizem como se agrupar os compoentes,,(objetos, classes etc).
MVC - Diz como interagem as camadas.



Este é o problema de usar uma nomenclatura falha, não univoca.
Lendo o que vc escreveu vc tem razão. Mas sabendo o que vc quiz dizer, vc está enganado.

O termo "camada" é na realidade um agrupamento de componentes, é o que em java seria um pacote e não se relaciona ao conceito de pilha.
Só que o mesmo termo é usado para significar "separação de componentes pelo lugar lógico que ocupam numa hierarquia de pilha"

Bom, então MVC sim é uma forma de como as camadas interagem se pensarmos em "camada" com a primeira difinição (conjunto de classes/componentes) mas não se pensarmos da segunda forma.

O termo camada é realmente ruim, porque é ambiguo.
"separação de componentes pelo lugar lógico que ocupam numa hierarquia de pilha" é chamado andar e conjunto de componentes não tem nome é "conjunto de componentes" mesmo. Informalmente podemos chamar de pacote, classes, API ,ssubpacote...

Então, MVC é uma forma como os componentes de integram um único andar, interagem.
Normalmente os andares de apresentação e cliente.

"Tela" não é um andar. "Apresentação" e "Cliente" é que são.
"Tela" é uma parte do andar "Cliente".

Antigamente faziam-se aplicações de 3 andares (interface grafica, processamento, persistencia)
Hoje é normal ter 5 (cliente, apresentação, negocio, integração e persistencia) , sobretudo em sistemas web.

Ha ainda a aquitetura em 3 camadas , que na realidade significa :Arquitetura com 3 nodos. (nodo = 3 máquinas : servidor de bando de dados, servidor de aplicação , máquinas clientes)

O termo "camada" é ruim mesmo e deve ser evitado a bem da boa comunicação.




Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
erickfm8
GUJ Master

Membro desde: 06/10/2009 19:29:12
Mensagens: 1396
Offline

Bom pessoal é isso ai ,,, esse assundo de ´Camadas e MVC é muito complexo mais ALGUMAS COISAS E JA POSSO AFIRMA


CAMADAS SAO CONCEITOS BEM DIFERENTES DE MVC

-CAMADAS DIZ COMO AGRUPAR OS COMPONENTES

-MVC DIZ COMO ELES INTERAGEM .

Um forma de ilustrar isso pode ser assim

Exemplo... um exemplo de uma aplicação de 3 camadas e aonde o MVC se encaixa


Apresentacao ( View , controle )
Negocio (model)
Dados

Basicamente é isso pessoa, e so com muitas lidas e tals que iremos fixar esse conceito...

Pois vai um link que foi o melhor que eu axei na net até agora (OBS: o melhor desse link são os comentarios que explica direitinho o conceito)..

http://alexmrg.wordpress.com/2006/12/28/what-the-fuck-is-mvc/

Obrigado.

Bacharel em Sistema de Informação
SCJP - Sun Certified Java Programmer
OCWCD - Oracle Certified Web Component Developer (Estudando..)
pedromuyala
JavaEvangelist
[Avatar]

Membro desde: 02/01/2009 19:08:04
Mensagens: 340
Offline

erickfm8 wrote:Sim,,,,, Mais o post desse Topico é para fazer o relacionamento em desenvolvimeto Desktop , priferencialmente usando swing,,, aguem mais para dar opnião?

obrigado a todos.


Tem este tópico que abrange bem o assunto de MVC para Desktop, Swing e até um pouco de Web.
http://www.guj.com.br/posts/list/0/129277.java
Vou colocar o seu tópico lá também para que as pessoas que buscam MVC também achem o seu.
Um abraço, espero ter colaborado!

This message was edited 1 time. Last update was at 18/10/2009 12:39:10


"O melhor grupo não é aquele que reúne membros perfeitos, mas aquele
onde cada um aceita os defeitos do outro, com isso se ajudam e conseguem perdão para seus próprios defeitos".
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team