| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2003 19:59:12
|
Maurício Oliveira Andrade
Smalltalk
![[Avatar]](/images/avatar/c8114d023f69d9866b1cd.jpg)
Membro desde: 18/08/2003 17:23:36
Mensagens: 4
Offline
|
Tente usar isto:
e quando for instanciar um "novo" Repository:
Assim você não precisa se preocupar em verificar se já existe uma instância do objeto cada vez que desejar cirar uma "nova" instancia.
Espero que ajude.
|
=========
MANDRADE
========= |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 12:36:33
|
le-silva
Java Ninja
![[Avatar]](/images/avatar/c6e19e830859f2cb9f7c8f8cacb8d2a6.jpg)
Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline
|
Ah, o pattern Singleton [GoF]? Conheço!
Mas acho que você não sacou a minha idéia de ter uma "repositório de objetos"....
Eu não quero controlar as instâncias do gerenciador de repositório, pois isso eu certamente faria implementando singleton. O que eu quero realmente, é criar um "repositório para objetos diversos", porém, sem me preocupar com a "storage" dos mesmos em tabelas de hash, e sim, acessando diretamente a memória para verificar a existência dos devidos objetos. Assim, não haveria como criar um objeto que ficasse "em oculto" ao gerenciador.
Falow!
|
Leandro Silva
{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' } |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 12:42:51
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Leandro,
Essa parte eu entendi, mas até agora vc nao explicou direito pra quê vc quer uma coisa dessas. Acho que a única coisa no Java que pode acessar a memoria diretamente assim é o garbage collector... e aposto que vc não está tentando desenvolver um... entao, qual o problema que vc está tentando resolver, aqui?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 12:58:52
|
le-silva
Java Ninja
![[Avatar]](/images/avatar/c6e19e830859f2cb9f7c8f8cacb8d2a6.jpg)
Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline
|
CV,
Sei que você já entendeu o que eu quero fazer! Mas só repeti o que já tinha explicado, porque um brother respondeu algo que já tinha sido discutido anteriormente. Forum tem dessas coisas: às vezes alguém que não está participando desde o inicio da discução, acaba respondendo ou perguntando algo que já rolou. É normal! (valeu Maurício!)
Quanto à sua pergunta.......................
É uma loucura que eu e uns brothers aqui do trampo estavamos pensando!
Se nós conseguissemos criar esse mecanismo, nós poderiamos controlar o número de instâncias de todas as classes do nosso sistema, em especial, nossos beans e classes de negócio, sem ter que, efetivamente, colocar código de controle de instâncias nessas classes.
Parece loucura, mas um bom framework que trabalhasse em todas as camadas do nosso sistema, deveria fazer isso! Não seria ótimo?
|
Leandro Silva
{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' } |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 14:14:40
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Hmm... se vc pensar bem, e' isso que EJB e outros containeres fazem na area de gerenciamento de ciclo de vida... a diferenca e' que no caso dos EJBs, por exemplo, nao da pra simplesmente mandar um new num session bean, se vc quiser aproveitar os recursos do container... por isso a coisa toda e' feita atraves de factories... mas eu entendi a sua ideia, sim... vc quer se livrar, na verdade, nao dos singletons, mas sim das factories, certo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 14:19:21
|
le-silva
Java Ninja
![[Avatar]](/images/avatar/c6e19e830859f2cb9f7c8f8cacb8d2a6.jpg)
Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline
|
Yeah!!!!!!!!!!!!! Pode crer!!!!!!!!!!
Você sabe, né? Sempre tem aqueles que "dão um new" ao invés de utilizar uma "factory".
|
Leandro Silva
{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' } |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 14:35:56
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Aaaaaaah bom, entao ta'
Ficam aqui entao as duas sugestoes que pipocaram no meio da discussao, entao:
- Fazer construtores protected: assim, so quem esta no mesmo pacote ou herda o objeto pode construi-lo
- Usar uma implementacao de AOP que suporte advices no construtor, pra puxar o objeto da factory ao inves de criar um novo. Nem sei se existe alguma (provavelmente o AspectJ suporta esse tipo de coisa, mas eu nao tenho certeza), e talvez nao compense o esforco...
Sobre AOP, de uma procurada aqui no GUJ, eu ja postei um monte de coisa ja faz um tempinho... e, sobre o AspectJ, http://aspectj.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2003 14:39:22
|
le-silva
Java Ninja
![[Avatar]](/images/avatar/c6e19e830859f2cb9f7c8f8cacb8d2a6.jpg)
Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline
|
Vou procurar sim... fiquei curioso...
|
Leandro Silva
{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' } |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2003 19:24:25
|
dukejeffrie
Virtual Machine Man
![[Avatar]](/images/avatar/c74d97b01eae257e44aa9d5bade97baf.png)
Membro desde: 21/08/2002 03:53:28
Mensagens: 661
Offline
|
Vc pode fazer uma factory "universal" se vc restringir os contrutores dos seus objetos especiais. Muitos containers te obrigam a ter um construtor sem argumentos, o pico se nao me engano te obriga a ter so um (por subclasse, i.e., uma subclasse pode ter um construtor diferente da classe pai).
Desse jeito, eles conseguem instanciar seu construtor por reflexao:
Aquelao!!
|
Brevity is the soul of wit |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/08/2003 09:15:01
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Bom vc ter lembrado do Pico aqui... parece que eh um bom candidato a factory generica nesse caso... primeiro pq ja vem pronto, e segundo, pq é muito facil de usar
Para saber mais: http://picocontainer.codehaus.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/08/2003 12:34:56
|
krico
JavaBaby
Membro desde: 17/08/2002 12:31:53
Mensagens: 96
Offline
|
Voce pode utilizar aspect oriented programming e botar um hook antes do new.
Ou entao pode ser mais radical e mandar um runtime no contstrutor:
|
|
|
 |
|
|