| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2005 20:24:46
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Meu probleminha é o seguinte, estou refatorando meu código de GUI em pequenos componentes reusaveis, a dúvida é sobre como fazer o wiring entre os vários componentes.
Via de regra tenho um objeto com todo o glue code para um caso de uso, ou seja, instancia e configura os componentes GUI. A questão é que a maioria deles costumam espor 1-2 valores e depender de outros. O pepino disso é que as fontes e os destinos desses desses valores mudam muito.
Hoje minha solução envolve os componentes implementarem PropertyChangeListener e um mediador adicionar eles para escutar notificações pertinentes. Um problema disso é que eu trato os eventos de acordo com o tipo da propriedade que mudou, isso meio que cheira mal, o outro é que os componentes tem que estar preparados para receber os eventos.
Ou seja, o código hoje parece +/- com:
Funciona mas fico na dúvida se não seria melhor fazer algo +/- assim:
A idéia é que o Mediador que se vire para entregar o valor ao componente b. Oque tou achando de ruim nisso é que usar composição de componentes fique mais complexo
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2005 21:12:18
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Louds, sem examinar muito seu código mas pegando no ar a questão de que os componentes dependem entre si, me vieram a mente 2 patterns GoFianos: chain of responsabilities e observer. Será que esta idéia ajuda em algo?
[]s
Luca
This message was edited 1 time. Last update was at 08/04/2005 21:36:08
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2005 21:28:20
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Luca wrote:Olá
Louds, sem examinar muito seu código mas pegando no ar a questão de que os componentes dependem entre si, me veio a mente 2 patterns GoFianos: chain of responsabilities e observer. Será que esta idéia ajuda em algo?
[]s
Luca
O problema é que os componentes não dependem entre sí, mas sim de valores que podem vir de fontes completamente diferentes.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2005 21:59:39
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
É, reli com mais calma e vi que vc falou que depende de outros e eu entendi dependência entre si.
O modelo de Container do swing é interessante mas eu não recomendaria nem para minha sogra. É dificil tentar advinhar o que pode ser melhor no seu caso. Só me resta ficar lançando idéias ao vento que foi o que fiz no post anterior.
Como está em meio ao processo de refatoramento acho que você mesmo vai descobrir o que é melhor. Só vou lembrar da regra de três do Martin Fowler: na primeira vez você apenas faz, na segunda vez que faz parecido estremece mas faz de novo e na terceira vez parecido chuta o balde e refatora. Então por enquanto deixe como está e siga o processo de refatoração por fora disto. Pode ser que mais adiante vá perceber com mais clareza qual o melhor caminho a adotar.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2005 11:32:26
|
brlima
Moderador
![[Avatar]](/images/avatar/fc2c7c47b918d0c2d792a719dfb602ef.png)
Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline
|
Viajei no que tu falou louds. Não entedi nada.
Vc quer amarrar dois componentes e qdo um alterar, ou outro pega o valor tb ?
|
Bruno R. Lima
-------------------------------------------
flickr :: twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2005 17:56:42
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Bruno, mais ou menos isso.
Os componentes dependem de valores que vem de fontes não determinadas.
Meu atual exemplo é um componente para seleção de tipo java (pense na linha de escolher o super tipo no wizard de criação de classes).
Ele depende do projeto e do pacote atual. No wizard de criação de classes esses dois valores vem de outros dois componentes, no wizard que estou criando o primeiro é constante e o segundo vem de outro componente.
Ou seja, é +/- oque você falou, 2 componentes, quando um alterar, o outro pega o novo valor. Mas sem amarrar eles explicitamente.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2005 19:12:41
|
brlima
Moderador
![[Avatar]](/images/avatar/fc2c7c47b918d0c2d792a719dfb602ef.png)
Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline
|
Será que inputMap / actionMap com clientProperty não ajuda ?
Dai vc pode pegar as ações em cima dos componentes e setar algum valor pro outro componente.
|
Bruno R. Lima
-------------------------------------------
flickr :: twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2005 19:21:17
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
brlima wrote:Será que inputMap / actionMap com clientProperty não ajuda ?
Dai vc pode pegar as ações em cima dos componentes e setar algum valor pro outro componente.
Hmm, tou usando SWT então fica complicado usar isso
De qualquer forma valeu, vou dar uma olhada mais a fundo em como seria o equivalente pro SWT/JFaces.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
|
|