| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 09:58:25
|
leofernandesmo
JavaEvangelist
![[Avatar]](/images/avatar/a536fb5480db8bdbb84daffe345c675b.jpg)
Membro desde: 05/06/2006 10:27:10
Mensagens: 337
Localização: Rec->Mac
Offline
|
Olá,
Bom ...é o seguinte:
Tenho uma Entidade Ex. ResumoReceita...
Uma determinada consulta retorna uma coleção de ResumoReceita.
Como estou montando "um painel" com gráficos uso essa mesma coleção, mas para cada gráfico é necessário agrupar os dados de maneira diferente.
Ex.:
Meu gráfico principal será de Receita por Empresa. Ao clicar em uma barra (ou seja uma empresa) abrem vários outro gráficos com informações da empresa.
- 10 maiores empréstimos desta empresa mês a mês.
- Os produtos mais vendidos mês a mês.
Etc..etc..
Minha dúvida:
Quem agrupa estas outras informações para ser apresentado na VIEW?
Usando Strus2 minha Action tem a coleção de ResumoReceita então eu devo criar vários métodos na própria Action que monte Lists (ou Maps) com as informações necessárias para cada um dos gráficos??
Eu pensei em fazer assim, mas minha Action ta ficando gigante a medida que o cliente pede um novo gráfico.
Pensei em delegar a tarefa de agrupar os dados para outro "Componente"...(e isso envolve percorrer a Coleção de ResumoReceita, extrair os dados necessários, fazer cálculos e agrupamentos e devolver um List/Map/Set para a View)
Obrigado.
|
Blog: http://jroller.com/page/leofernandesmo
Msg: "Não adianta olhar pro céu com muita fé e pouca luta" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2008 16:45:53
|
neófito
Virtual Machine Man
![[Avatar]](/images/avatar/728f206c2a01bf572b5940d7d9a8fa4c.jpg)
Membro desde: 07/10/2003 08:29:35
Mensagens: 575
Localização: São Paulo/SP
Offline
|
Tente agrupar cada um desses gráficos em uma classe separada. A sua action está perdendo coesão, está ficando inchada. Você poderia criar, por exemplo, uma classe RelatorioInformacoesEmpresa que conteria a lógica para obter os dados e realizar os cálculos. Esses relatórios seriam modelados como objetos do domínio do sistema. Assim você consegue distribuir melhor responsabilidades, aumentar a coesão e diminuir o acoplamento das suas actions.
Duas leituras:
Refactoring, do Fowler (a introdução dele mostra um exemplo que se aplica ao seu caso), e
Applying UML and Patterns, do Craig Larman (a parte de projeto OO dele é bem legal)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2008 18:33:46
|
leofernandesmo
JavaEvangelist
![[Avatar]](/images/avatar/a536fb5480db8bdbb84daffe345c675b.jpg)
Membro desde: 05/06/2006 10:27:10
Mensagens: 337
Localização: Rec->Mac
Offline
|
neófito wrote:Tente agrupar cada um desses gráficos em uma classe separada. A sua action está perdendo coesão, está ficando inchada. Você poderia criar, por exemplo, uma classe RelatorioInformacoesEmpresa que conteria a lógica para obter os dados e realizar os cálculos. Esses relatórios seriam modelados como objetos do domínio do sistema. Assim você consegue distribuir melhor responsabilidades, aumentar a coesão e diminuir o acoplamento das suas actions.
Duas leituras:
Refactoring, do Fowler (a introdução dele mostra um exemplo que se aplica ao seu caso), e
Applying UML and Patterns, do Craig Larman (a parte de projeto OO dele é bem legal)
Ótimo..
por uma incrivel conhecidencia essas são duas das minhas próximas leituras.
|
Blog: http://jroller.com/page/leofernandesmo
Msg: "Não adianta olhar pro céu com muita fé e pouca luta" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2008 18:49:24
|
neófito
Virtual Machine Man
![[Avatar]](/images/avatar/728f206c2a01bf572b5940d7d9a8fa4c.jpg)
Membro desde: 07/10/2003 08:29:35
Mensagens: 575
Localização: São Paulo/SP
Offline
|
Que bom que ajudei. O importante é ter em mente que você está desenvolvendo um sistema orientado a objetos, com uma linguagem orientada a objetos. Não faz muito sentido ter essas ferramentas à mão e não usá-las. As classes do seu sistema devem ter estado e comportamento, como qualquer objeto. Procure criá-las realmente como objetos, e não apenas um aglomerado de dados e funções que executam todo tipo de tarefa. Outra leitura legal, que fala sobre o assunto: http://www.fragmental.com.br/wiki/index.php/Fantoches
This message was edited 1 time. Last update was at 22/04/2008 18:50:09
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 07:32:27
|
leofernandesmo
JavaEvangelist
![[Avatar]](/images/avatar/a536fb5480db8bdbb84daffe345c675b.jpg)
Membro desde: 05/06/2006 10:27:10
Mensagens: 337
Localização: Rec->Mac
Offline
|
neófito wrote:...Esses relatórios seriam modelados como objetos do domínio do sistema.
A idéia da classe separada eu já adotei, mas não estou visualizando ele como fazendo parte do meu domain model.
É apenas uma forma diferente de visualização (agrupamento) dos dados do meu domínio.
O que você acha??..
Digo isso, mas não sei onde se encaixaria este objeto.
|
Blog: http://jroller.com/page/leofernandesmo
Msg: "Não adianta olhar pro céu com muita fé e pouca luta" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 09:17:11
|
neófito
Virtual Machine Man
![[Avatar]](/images/avatar/728f206c2a01bf572b5940d7d9a8fa4c.jpg)
Membro desde: 07/10/2003 08:29:35
Mensagens: 575
Localização: São Paulo/SP
Offline
|
Você tem alguma regra de negócio (pesquisa, cálculo, agrupamento, etc...) para criar o relatório? Se sim, ele deve ser uma classe de domínio. O modelo de domínio nada mais é do que uma abstração do que existe no mundo real. No caso do elemento não existir, é você que está pesquisando e modelando como deveria ser o domínio, com base nas informações obtidas de experts do domínio.
Talvez não uma classe, mas um método em uma classe que contenha a informação necessária, ou parte dela, para criar o relatório. Mas lembre-se que se houver processamento demais o correto é separá-lo em um classe.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2008 09:20:48
|
neófito
Virtual Machine Man
![[Avatar]](/images/avatar/728f206c2a01bf572b5940d7d9a8fa4c.jpg)
Membro desde: 07/10/2003 08:29:35
Mensagens: 575
Localização: São Paulo/SP
Offline
|
Uma referência:
pure fabrication pattern: http://davidhayden.com/blog/dave/archive/2005/09/18/2476.aspx
|
|
|
 |
|
|