JavaBean no MVC  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
_pto
HelloWorld

Membro desde: 25/06/2009 01:10:52
Mensagens: 15
Offline

Aê galera,


Confesso que procurei no fórum algo a respeito mas não achei...


Suponha que eu tenha um javabean CarrinhoDeCompras. Numa aplicação simples sem nenhum framework mas ainda assim utilizando MVC Model 2, este javabean é minha regra de negócios...


Mas eu posso adicionar métodos como "calcularTotal()" ou "quantidadeDeItens ()" ao mesmo ?


Os javabeans não podem ter APENAS métodos acessores (getters e setters) ?


OBRIGADO !!!

evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 183
Offline

Eu utilizaria outro objeto para fazer estas operações, mas se neste seu bean estão contidas as regras do seu sistema acho que não faria diferença vc colocar ai mesmo.

Mas sei lá, é como eu faria.

Flws
sfidencio
Thread.start()
[Avatar]

Membro desde: 18/07/2009 10:42:23
Mensagens: 26
Localização: Anápolis-Goiás
Offline

_pto wrote:Aê galera,


Confesso que procurei no fórum algo a respeito mas não achei...


Suponha que eu tenha um javabean CarrinhoDeCompras. Numa aplicação simples sem nenhum framework mas ainda assim utilizando MVC Model 2, este javabean é minha regra de negócios...


Mas eu posso adicionar métodos como "calcularTotal()" ou "quantidadeDeItens ()" ao mesmo ?


Os javabeans não podem ter APENAS métodos acessores (getters e setters) ?


OBRIGADO !!!



JavaBean Segue as seguintes especificações:

* implemente a interface java.io.Serializable (que possibilita a persistência e restauração do estado do objeto da classe);
* possua um construtor sem argumentos;
* que as suas propriedades sejam acessíveis através de métodos "get" e "set", seguindo um padrão de nomenclatura;
* possa conter qualquer método de tratamento de eventos.


Cara para ficar mais organizado...nesse caso, teu javabean serviria..de DTO..para trafegar entre as camadas.. eu os colocaria separado. e criava uma camada contendo classes so pra regras de negocio.
Assim




[Email] [WWW] [MSN]
_pto
HelloWorld

Membro desde: 25/06/2009 01:10:52
Mensagens: 15
Offline

Pelo que vc tah me falando, Vendas seria um DTO ou VO e VendasBusiness seria um BO.

Um DAO teria a estrutura parecida com o Vendas mas com anotações por exemplo pra indicar o mapeamento ??

sfidencio
Thread.start()
[Avatar]

Membro desde: 18/07/2009 10:42:23
Mensagens: 26
Localização: Anápolis-Goiás
Offline

_pto wrote:
Um DAO teria a estrutura parecida com o Vendas mas com anotações por exemplo pra indicar o mapeamento ??


Não se você estiver usando Mapeamento Objeto Relacional, o mapeamento nao é feito no DAO, e sim no Bean.



_pto wrote:
Pelo que vc tah me falando, Vendas seria um DTO ou VO e VendasBusiness seria um BO.

Exatamente!.

Quando eu programava em C# fiz uma aplicação onde eu coloquei os metodos de negocio..junto com os objetos de valores. o seja, onde fica os atributos encapsulados..seria a caixa preta.
[Email] [WWW] [MSN]
_pto
HelloWorld

Membro desde: 25/06/2009 01:10:52
Mensagens: 15
Offline

Fizeste o BO implementar uma interface....Isto é só uma boa prática (re-uso de código) ou uma convenção (todo BO tem que implementar uma interface) ??

mario.fts
Virtual Machine Man
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 632
Localização: São Paulo - ZL
Offline

da uma lida nesse artigo, acho que pode explicar muita coisa pra vc: http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs

Mário Amaral Gonçalves
[Email]
sfidencio
Thread.start()
[Avatar]

Membro desde: 18/07/2009 10:42:23
Mensagens: 26
Localização: Anápolis-Goiás
Offline

_pto wrote:Fizeste o BO implementar uma interface....Isto é só uma boa prática (re-uso de código) ou uma convenção (todo BO tem que implementar uma interface) ??




Interface é verdadeiro sinômimo de HERANÇA. em C++ você poderia herdar de mais de uma classe. no JAVA isso não seria possivel se não exisitisse as interfaces, que fazem esse trabalho muito bem.

Interface gera um contrato com a classe. onde a classe é obrigada a implementar todos metodos da interfaces.

Interface não é uma implementação é um especificação.


Portanto, _pto: Isto é uma boa prática de fato, e também permiti você implementar polimorfismo, porque se você tiver uma Interface chamada Pessoa por exemplo. você pode criar uma classe chamada Cliente e outra Classe chamada funcionario, onde um Cliente é uma Pessoa, e um Funcionário é uma Pessoa (Herança). ou seja, uma Pessoa pode se comportar como um Cliente ou como Um Funcionário(Polimorfismo)





[Email] [WWW] [MSN]
analyser
JavaEvangelist
[Avatar]

Membro desde: 26/02/2007 09:31:49
Mensagens: 323
Offline

Não separa seus objetos de negócio em classes de atributo e classes de negócio, valorize a orientação a objetos. Evite o modelo anêmico. http://martinfowler.com/bliki/AnemicDomainModel.html

This message was edited 2 times. Last update was at 25/01/2010 10:20:19


Analyser
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team