Quanto � quest�o da diretiva de compila��o h� uma solu��o muito melhor em Java que � usar o compilador de Aspect Oriented Programming. A solu��o � melhor pois os aspectos s�o escritos em separado do seu c�digo-fonte em Java e s�o inclu�dos direto no .class atrav�s de inje��o de c�digo, por consequ�ncia, quando se desliga um aspecto n�o h� mais inje��o de c�digo.
Os Aspectos funcionam muito melhor em Java por causa do formato .class, que � igual n�o importando a plataforma, o que permite inje��o de c�digo. Como C/C++ n�o tem um formato de execut�vel padr�o n�o h� a mesma facilidade.
Mais informa��es sobre Aspectos podem ser obtidas em http://aosd.net/
Flexa
At 12:12 24/2/2003, you wrote:
Concordo Michael, deveria estar na java-list, mas
j� que estamos aqui. tenho uma corre��o a fazer : o finalize
� chamado antes do GC recolher o objeto e n�o ap�s o objeto
sair de seu escopo. H� uma grande diferen�a ... por isso
ele n�o pode ser comparado a um destrutor. concorda ?
Sobre o 'clone' n�o vou comentar, todos j� sabem...
Quanto as diretivas Michael, h� um grave problema por sua falta :
Quem j� programou em linguagens como C/C++, sempre teve �
disposi��o um meio pr�tico para gerar o c�digo para produ��o
e para desenvolvimento, o c�digo de produ��o n�o precisa
fazer logs e checar assertivas, ent�o n�o precisa das 'chamadas'
em java eu preciso fazer algo como:
if (desenvolvimento) {
logs, assertivas etc...
}
Hoje com 1.4 posso fazer 'uma gambiarra' com o assert
assert 1=1: logs,etc...
mas n�o � correto...
N�o vamos mais alongar a discuss�o, ou podermos ir para o java-list se
algu�m quiser prosseguir.
okeys.
At� mais.
"Michael
Nascimento Para: <[EMAIL PROTECTED]>
Santos" cc:
<[EMAIL PROTECTED] Assunto: Re: [enterprise-list] Destrutor
il.com>
24/02/03 10:37
Responder a
enterprise-list
Para implementar o que voce quer, seria necessario que houvesse um operador
delete no Java, o que tornaria facil que se esquecesse de usa-lo, causando
memory leaks. O metodo finalize eh chamado quando o objeto sai do escopo e
nao pode mais ser referenciado, exceto quando a VM estah proxima de ser
terminada. Se voce fizer um debug, perceberah que o finalize normalmente eh
chamado na maioria das implementacoes de VM alguns instantes depois de o
objeto nao poder ser mais referenciado. A sua chamada nao eh certa, mas eh
bastante provavel e com um delay relativamente pequeno com relacao a morte
do objeto. Pode nao ser a solucao perfeita, mas simplicidade e performance
tem seu preco.
Com respeito a clonagem, concordo que eh uma questao bastante polemica,
especialmente referente a implementacao de deep cloning. Quanto aos
operadores de sobrecarga, a grande maioria dos desenvolvedores Java nao
sente a menor falta deles e eles realmente tornam o codigo ilegivel exceto
em dominios bem limitados, como matematica - operacoes com matrizes e
coisas
do genero. Diretivas de compilacao, bem, desculpe, mas nao fazem o menor
sentido - a menos que voce me prove o contrario :-P
Para concluir, sinceramente acho que esta discussao deveria ir para a
java-list, porque nao estamos falando nada relacionado a J2EE. Que acha?
[]s
Michael Nascimento Santos
Sun Certified Programmer for the Java 2 Platform
Sun Certified Programmer for the Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE
Moderador SouJava - www.soujava.org.br
----- Original Message -----
From: "Giuseppe Proment" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 21, 2003 8:50 PM
Subject: Re: [enterprise-list] Destrutor
Antes do Java programava em C++ ent�o entendo que o destrutor poderia ser
chamado em java
quando o objeto sai de seu escopo ou n�o pode mais ser refer�nciado. A
explica��o para o n�o
uso do Finalize � bastante vaga... Acho que isso � um dos furos da
linguagem, como muitos outros
exemplo: falta de construtores de c�pia remendados pelo 'clone', falta de
sobrecarga de operadores
porque foi julgado 'complexo', falta de diretivas de compila��o idem,
etc...
O que ocorre � a cria��o de um m�todo pr�prio para fazer clean-up e temos
sempre que lembrar
de chama-lo, porque n�o h� outro jeito... Uma solu��o bastante desajeitada.
"Michael
Nascimento Para:
<[EMAIL PROTECTED]>
Santos" cc:
<[EMAIL PROTECTED] Assunto: Re:
[enterprise-list] Destrutor
il.com>
21/02/03 16:31
Responder a
enterprise-list
Senao voce ia ter que acabar sendo obrigado a dizer quando ele precisava
ser
chamado. Ou o overhead de execucao ia ser enorme, porque a cada instrucao,
o
garbage collector teria que checar para quais objetos jah seria possivel
chamar o destrutor.
Se voce pensou em algo diferente disto, explique melhor.
[]s
Michael Nascimento Santos
Sun Certified Programmer for the Java 2 Platform
Sun Certified Programmer for the Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE
Moderador SouJava - www.soujava.org.br
----- Original Message -----
From: "Nilseu Padilha" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 21, 2003 2:44 PM
Subject: [enterprise-list] Destrutor
> Alguem sabe o motivo pelo qual nao incluiram um Destrutor decente (nao
finalize()) na especificacao de Java?
>
>
> <Padilha id="Nilseu">
> Nilseu Perside Ortiz Padilha Junior
> Desenvolvedor Java - J2EE
> Immediate Consultoria e Sistemas
> http://www.immediate.com.br
> Ciencia da Computacao - ULBRA
> <Quote>
> Rejeitamos reis, presidentes e votos. Acreditamos em puro consenso e
codigo eficiente. - Dave Clark
> </Quote>
> <Quote>
> One exam does not a (J2EE) architect make. - Master Yoda
> </Quote>
> </Padilha>
>
>
> ---------------------------------------------------------------------
> Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
> Para comandos adicionais, envie mensagem para:
[EMAIL PROTECTED]
>
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para:
[EMAIL PROTECTED]
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para:
[EMAIL PROTECTED]
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para:
[EMAIL PROTECTED]
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
Jos� Flexa Ribeiro
CTO-Chief Technology Officer
Mondo Technologies
Phone/Fax : +55 19 32345776
http://www.mondo.com.br
