Depois de algum tempo com desenvolvimento, adquiri alguns novos conhecimentos de arquitetura para sistemas desktop…
Vou começar outro sistema e defini a seguinte arquitetura, queria que vcs falassem sobre a mesma:
[color=red]Algumas duvidas:[/color]
Instâncias de Objetos:
instaciar Dao a partir do Manager - Injeção de Dependencia??
Instaciar ClienteEntity a partir do Form - ???
Instaciar Action e Manager a partir do form - como? usando Fabricas???
O que vcs acham dessa arquitetura pessoal???
criticas?
sugstões?
Obrigado!
nbluis
Por que a necessidade de Cliente, ClienteEntity, ClienteManager ? É tudo a mesma coisa …
O que seria AppFacade ? Não entendi …
Quanto as perguntas …
Gosto de pensar em um esquema de repository.
Você pode injetar o dao sem problema.
diegonunes.sistema
Obrigado nbluis ;;;
Cliente seria o meu VO, onde teria get e set…
ClienteEntity criarei para metodos auxiliares de cliente, como por exemplo: no meu cliente tenho um getDataCadastro() que me retorna um date, já no meu clienteEntity terei getDataCadastroAux() que me retornara uma String com a data formatada, somente exemplo.
Meu ClienteManager, é onde terei minas regras de negocio…
Quanto ao AppFacade é uma interface que conterá contratos entre Controle e Modelo e AppFacadeImpl implementará esta interface…
entendeu???
Obrigado…
p.s. Pode me falar mais sobre este esquema de repository???
nbluis
Bom…
Quanto ao seu Cliente e ClienteEntity, acho que seria perfeitamente possível ser o mesmo objeto independente de qualquer coisa.
Utilize métodos transient para fazer seus “métodos auxiliares”.
Não li ainda os topicos q vc me passou… mas pelo q estou entendendo, minas regras de negocio ficariam neste repositorio…???
Quanto ao Facade so o utilizarei quando eu precisar que o controle converse com o modelo ou seja… se por exemplo, quero executar recuperaUsuarioPorLogin(), e para isto não preciso entrar na camada de controle… eu posso fazer isto no meu manager… e o meu Facade pode tb conversar diretamente com meu Dao… como no exemplo…
Entendeu?
nbluis
diegonunes.sistema:
Não li ainda os topicos q vc me passou… mas pelo q estou entendendo, minas regras de negocio ficariam neste repositorio…???
Depende, o que você diz por “Regra de Negócio”…
Dê uma olhada nos links sobre repository que te passei.
Existem alguns problemas nessa abordagem.
Primeiro, morre o encapsulamento e o reuso de código. Pois voce vai estar implementando as mesmas regras no seu “manager”, no “facade” e ainda onde mais quiser.
Outro problema é expor e sobrecarregar entidades em seu comportamento.
Lembre-se antes de tudo sobre abordagem OO.
Seus objetos devem ter características e comportamento. Porém com coesão.
Jogar métodos auxiliares em classes globais, é assinar um sistema anti-oo trabalhando proceduralmente.
Veja os links acima, que vai entender do que falo.
diegonunes.sistema
Regras de Négocio…
tipo para mim cadastrar um cliente, preciso verificar x do mesmo…
é uma regra…