| Autor |
Mensagem |
|
|
fbar,
Nesse seu modelo eu adicionaria mais uma camada entre o Facade e o DAO, que seria uma camada chamada Manager. É nela que ficaria a regra de negócio da aplicação, os métodos que trabalhariam diretamente com o DAO.
Cliente -> Action -> Delegate -> Facade -> Rule(Manager) -> DAO
Delegate -> responsável por achar os facades e delegar as requisições do Cliente
Facade -> Camada que conversa diretamente com o Rule e sendo um ejb pode ser acessada remotamente.
Rule -> Camada onde fica a lógica de toda aplicação. Validações de lógicas de dados, etc. Chamadas das operações save, delete, etc do DAO.
DAO -> Camada de abstração da manipulação dos dados (save, delete, etc)
|
 |
|
|
Olá,
Pelo que eu conheço o pattern BusinessDelegate é utilizado para fazer a interface entre o cliente(actions de JSP, etc0 e a regra de negócio da aplicação(RULE). Em outras palavras, ele serve pra delegar em qual Manager será tratada tal situação da aplicação.
Usando EJB, o delegate serve também para axar estes objetos e para definir qual o tipo de protocolo que deve ser usado para esta comunicação.
Portanto, por definição, o Delegate não deve conter lógica, apenas delegar para a regra correta
|
 |
|
|
Usando Hibernate voce tentou fazer assim:
SELECT n, i
FROM notas n JOIN itens i on n.id = i.nota_id
WHERE n.data < :data
AND i.quantidade > :quantidade
Daí o resultado que voltará será uma lista de Object[] e depois voce faz um for pra colocar o itens dentro da nota, mais ou menos assim:
List<Object[]> list = (aqui voce roda a query);
for(Object[] objs : list)
{
Notas n = objs[0];
n.setItens = objs[1];
}
|
 |
|
|
Olá Euclides,
Não está funcionando pq voce não está setando valores para os atributos, vc está apenas dando get sem antes dar nenhum set.
O que eu lhe aconselho seria criar um construtor em cada classe filha e nele voce dar um super.setXXX e aí passar os valores desejados. Aí quando vc der um get os valores irão existir. Seguindo o meu conceito, ficaria assim o recheio da classe Nacional:
public class Nacional extends Carro
{
Nacional()
{
super.setMarca("GM");
super.setModelo("Astra");
super.setCor("Preto");
}
@Override
public void acelerar()
{
// TODO Auto-generated method stub
}
}
Aí na sua Classe Loja na hora q voce cria o objeto Nacional ele seta os valores que estão no construtor e quando voce dá um get ele pega os métodos da classe pai Carro.
Um conselho que te dou é tomar mto cuidado ao usar Herança, pois as vezes usar demais acaba gerando mtos problemas pois qlq mudança na classe pai afetará todas as classes filhas.
|
 |
|
|
Olá Daniel,
Como ferramentas AJAX, eu lhe indicaria usar o Framework DWR(Direct Web Remoting) http://getahead.org/dwr que é um framework bem simples e leve que facilita muito a nossa vida. Ele tem agora até um tutorial em portugues =) http://getahead.org/dwr/languages
Outra opção que indicaria é o GWT(Google Web Toolkit) http://code.google.com/webtoolkit/ que é um poderoso framework do Google que tem um propósito bem interessante também.
Para começar nesse mundo AJAX eu aconselharia iniciar com o DWR pois ele é muito simples de configurar =)
Abraços,
Leonardo
|
 |
|
|
|
|