Singleton

1570 palavras 7 páginas
Singleton
Singleton é um design pattern (padrão de projeto) que tem o objetivo garantir que existe apenas uma instancia de uma certa classe a qualquer instante e em qualquer ponto de um sistema.
A palavra " singleton " é usada também, de forma errada, para referir um objecto de um classe que apenas é instanciada uma vez no sistema. Este conceito não representa um verdadeiro singleton. Para clarificar considere as classes java.awt.Desktop e java.util.Currency . Nenhuma das duas tem um construtor público. Para obtermos um objeto Desktop temos que usar Desktop.getDesktop () e Currency.getInstance (). Ambos métodos estáticos. A diferença é que podemos ter vários objectos currency (um para cada moeda) mas não vários Desktop.
Então como saber se determinada classe é um singleton?
Simplemente obtenha várias vezes a instancia e compare com as anteriores usando = =. A classe não é singleton se existir pelo menos uma forma de comparar dois objectos a e b tal que a = = b é falso.
Um singleton é um objeto e como tal é o encapsulamento de dados e comportamento. Não é possivel substituir singleton por nenhum outro padrão de projeto. Mas talvez você não esteja precisando de um objeto único e sim de uma forma global de acessar a ele ou uma forma de garantir que só é instanciado uma única vez.
Se o seu objetivo é ter uma forma global de acesso considere usar o padrão Registry. Ele provê métodos estáticos para fazer set / get de variáveis globais O exemplo classico de um classe que implementa Registry é a classe System do JSE.
Se o seu objetivo é criar um objeto e uma forma de o instanciar apenas um vez, para poupar recursos, por exemplo, o padrão singleton não o vai ajudar. Nesse caso você irá usar o padrão Factory. Este é o padrão seguido pelo objeto Currency. Você pode ainda usar um container de inversão de dependencia como o Spring que já implementa o padrão Factory com controlo de numero de instancias de forma genérica.
Moral da historia? Pense muito bem no

Relacionados

  • Singleton
    314 palavras | 2 páginas
  • Pattern Project Singleton
    336 palavras | 2 páginas
  • Design patterns
    4431 palavras | 18 páginas
  • Terceira tarefa modular
    1248 palavras | 5 páginas
  • Java
    1056 palavras | 5 páginas
  • Introdução a Padrões de Projeto
    2328 palavras | 10 páginas
  • Orientador De Estudos APD2 2 Respostas
    3968 palavras | 16 páginas
  • Padrões de Projeto
    1915 palavras | 8 páginas
  • Engenharia de Software
    2451 palavras | 10 páginas
  • padroes trab1 2 Paulo Weverton
    1871 palavras | 8 páginas