Na verdade, para criar um código mais condizente com o que vc quer, vc deveria primeiro colocar o modificador private no construtor da classe. Depois criar um método, possivelmente estático, para gerar a(s) instância(s) dessa classe. Esse método (chamemos de getInstance()...) retornaria um objeto daquela classe, caso determinada(s) condição(ões) tivessem sido satisfeitas. Caso contrário, retornaria null, ou lançaria uma exceção.

      O "problema" dos construtores em Java, é que eles sempre alocam um novo espaço de memória para o objeto, mesmo que o objeto seja o mesmo. Se vocês estiverem entendendo "instância" como algo diretamente relacionado à "mesma posição de memória", então essa solução será mais adequada. Caso contrário, a solução do Marcelo servirá sem problemas... Considero deselegante na solução dele o fato de gerar uma exceção caso o usuário tente instanciar mais de uma vez a classe...

      Quem tiver interesse, dêem uma olhada no artigo, de certa forma sensacionalista, sobre as desvantagens do operador new:

                      Java's new Considered Harmful
                      By Jonathan Amsterdam

                      http://www.ddj.com/documents/s=7027/ddj0204a/

                 

 

Rosfran Lins Borges
Analista de Sistemas - NDS
[EMAIL PROTECTED]
Fóton® Informática e Serviços
Fone: (61) 328 5060 R.: 204

 

-----Mensagem original-----
De: Marcelo Alves [mailto:[EMAIL PROTECTED]]
Enviada em: terça-feira, 16 de abril de 2002 13:53
Para: java-list@soujava.org.br
Assunto: Re: [java-list] HTTP....

 

Código não testado

 

public class UmaVez{

    private static count = 0;

 

    public UmaVez() {

        if (count != 0){

            throw UnsupportedException ("Nao pode");

        }

 

        count++;

    }

 

}

 

    Se ela puder ir pro GC, ai tem q estender finalization() também...

 

 

.: marcelo alves :.

 

----- Original Message -----

Sent: Tuesday, April 16, 2002 10:10 AM

Subject: Re: [java-list] HTTP....

 

Bom dia pessoal,

 

Alguem sabe me dizer como eu faco uma classe

que soh pode ser instanciada uma unica vez?

Obrigada,

 

Vanessa

 

 

 

 

 

 

 

 

----- Original Message -----

To: Java List

Sent: Monday, April 15, 2002 6:27 PM

Subject: [java-list] HTTP....

 

Olá pessoal...   

    Alguém já implementou um daemon que fica ouvindo uma porta e conversa via HTTP, tipo um daemon que possui sua interface de configuração através da web, utilizando um porta configurável?

    Alguém já trabalhou com algo assim?

    Poderiam me dar uns toques?

 

    Abraços

 

    Fábio

Responder a