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] -------------------------------------------------------------------------
