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 -
From: Vanessa Ribeiro
To: [EMAIL PROTECTED]
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 -
From: Fabio Hasegawa
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