Alguns autores (em particular o Bill Venners e o Joshua Bloch) sugerem que
se d� prefer�ncia a m�todos de f�brica sobre construtores em v�rias
situa��es. A vantagem do m�todo de f�brica como uma boa pr�tica de design �
que ele isola a forma como voc� decide criar seus objetos. Se o construtor
n�o faz parte da sua interface p�blica, voc� pode optar por controlar a
cria��o de objetos no futuro sem quebrar o c�digo que j� usa sua classe.

Outra vantagem � que voc� pode ter m�todos de f�brica diferentes, que fazem
coisas diferentes ao criar o objeto, com nomes diferentes e at� o mesmo
n�mero e tipo de par�metros (eu j� vi c�digo que declarava argumentos extras
nos construtores s� para poder sobrecarreg�-los - isto definitivamente � uma
raz�o para escolher m�todos de f�brica.) A desvantagem � que n�o h� como
identificar que um m�todo � um factory method criador de inst�ncias a n�o
ser que o programador siga certas conven��es como cham�-lo de newInstance(),
getInstance() ou newNomeDoObjeto(), por exemplo.

[]s
Helder.

--
Helder da Rocha
Consultor
www.argonavis.com.br
S�o Paulo


----- Original Message -----
From: "Br�ulio Consani Moura" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, December 13, 2001 12:27 PM
Subject: RES: [java-list] Classe


> Geralmente utilizam-se esta forma de inicializa��o classes Singleton, ou
> seja, somente uma instancia da classe fica "no ar" durante a aplica��o.
> O m�todo est�tico verifica se existe a inst�ncia da classe, caso nao
> exista cria-se uma nova, caso exista retorna a refer�ncia para ela.
>
> Espero ter ajudado.
> consani
>
> -----Mensagem original-----
> De: Gustavo Barreiro de Carvalho [mailto:[EMAIL PROTECTED]]
> Enviada em: ter�a-feira, 11 de dezembro de 2001 16:04
> Para: [EMAIL PROTECTED]
> Assunto: [java-list] Classe
>
>
> Galera,
>
>   Alguem sabe me dizer o motivo de algumas classes utilizarem um metodo
> estatico para criar uma nova instancia de si mesma, por exemplo a classe
> javax.xml.parsers.SAXParserFactory. Gostaria de entender a necessidade
> de definir o c�digo de inicializa��o desta classe neste metodo ao inves
> de definirmos dentro do construtor da classe ?
>
>
> Obrigado.
>
>
> ------------------------------ LISTA SOUJAVA
> ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para
> [EMAIL PROTECTED]
> ------------------------------------------------------------------------
> -
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a