Pattern Singleton com número váriavel de instâncias

Criei um objeto para gerar uma única instância:

public class ConexaoSingleton {
    private static Conexao conn=null;

    public ConexaoSingleton(){
    }

    public static Conexao getInstance(){
       if (conn==null){
           conn = new Conexao();
       }
       return conn;
    }
}

Queria possuir um número variavel de instâncias, por exemplo 5. Mas como posso alterar este objeto para fazer este controle, de preferencia sempre buscando a instância mais inativa.

Obrigado.

Você não quer um Singleton mas sim um Pool

puxa pessoal… serah q vcs poderiam me explicar melhor a respeito …

Singleton == somente uma instancia em memoria

Pool = varios objetos sao instanciados e guardados em uma lista… assim, quando alguem precisar de uma instancia de tal objeto, ele pega do pool, ao inves de criar do zero. O uso mais comum deve ser com banco de dados, onde a conexao leva um tempo consideravel para ser criada. Dessa forma, voce cria n de uma unica vez e vai pegando do pool, ao inves de criar uma toda vez que for necessario.

Rafael

Um singleton só tem sentido quando você quem somente uma única instancia, saiu disso não é mais singleton.

Provavelmente voce quer usar 1 Pool, o rafael já explicou bem, ou uma Factory.

Factory é um objeto que ‘produz’ outros objetos.

louds, Factory tem a ver com a class Class ? :?

Nao, Factory eh bem o que o nome diz mesmo, uma “fabrica” de objetos… ao inves de fazer a instanciacao diretamente de determionado objeto, voce solicita para uma classe auxiliar - o Factory - criar ele para voce.

Mais informacoes voce encontra no Google ou em http://www.dofactory.com/Patterns/PatternFactory.aspx

Rafael

Alias, se vc pensar bem, a Class tem um método factory:

Class klass = java.util.HashMap.class; HashMap map = (HashMap) klass.newInstance();

Ou seja, o Shelson nao falou nenhuma besteira aqui :wink:

esta poderia ser classificada como uma Abstract Factory, certo??
pois o metodo newInstance() da classe Class instancia qualquer classe para a qual esta instancia esteja apontando e tenha um construtor sem parametros :slight_smile: