Diferença entre um método statico e um metodo de um Singleton?

Qual a diferença entre utilizar um método com retorno static ou utilizar um método nao static de um singleton:

por exemplo:

Util.temProximo()
//utilizando um metodo static public static boolean temProximo()

ou

Util.getInstance().temProximo()

Qual a diferença?

Static não é um tipo de retorno, e sim uma maneira de você acessar um
método, ou atributo.

:arrow: Um método declarado como static, quando você o utiliza, ele não instancia a
classe que possui o método.

:arrow: Singleton significa que existe uma única instância de uma determinada classe, para todos que a utilizam.
Um método dentro de uma classe singleton, é um método normal, desta única instancia de classe.

inté.

Nenhuma.

Um método estático pertence à Classe, não ao Objeto, logo ele não pode usar membros (atributos e métodos) de instância, apenas membros estáticos.

O conceito é bem diferente. Normalmente você utiliza um membro estático para um comportamento que deve ser sincronizado entre todas as classes, uma tributo ou método em comum que todas compartilham.

Um Singleton é uma classe cujo número de instâncias é controlada. Cada objeto Singleton isntanciado (supondo que são mais de um) tem seus próprios membors (é claro, se não forem estáticos :slight_smile: )

[]s

E, antes que voce encoste a mao no editor pra fazer um singleton (um dos piores e mais horrorosos anti-patterns, quando utilizado em circunstancias incorretas), use injecao de dependencias :wink:

http://www.google.com/search?q=martin%20fowler%20dependency%20injection

Singleton é o padrão mas mal interpretado que eu já vi. O problema é o anti-pattern “variável global disfarçada de singleton”.

Um Singleton apenas existe para controlar o número de instancias do objeto, só isso. O padrão nem diz que precisa existir um getInstance

Não diz que você deve, mas meio que te induz:

[]s

Eles falam que é a estratégia mais comum de implementação.
De fato, você pode usar alguma forma de object registry.

E aí galera beleza?

No caso tenho um arquivo de configuração e gostaria de saber se é melhor eu implementar um singleton ou usar metodos gets statics.
Pois não preciso cada vez que fou usar reler o arquivo, então não preciso instanciar toda hora um objeto que me retorne os valores do arquivo de configuração certo? se eu alterar o arquivo de configuração reestarto a aplicação.

Se puderem me ajudar? A ultima coisa que quero é fazer mau uso de patterns, mas por outro lado gostaria de usá-los o maximo possível.

Pessoal,

Vejo todos falarem do Singleton e todos o detestarem, todos o consideram um anti-padrão mas ainda não vi ninguem falar porque o Singleton é um antipattern e porque todos o detestam, sera que alguem aqui pode por um ponto final nesta história que realmente convença a todos que ele seja um antipattern ou que ele seja uma alternativa ruim ?

Abraços

Qual o problema com as explicações do outro tópico?
http://guj.com.br/posts/list/44894.java

Olá pcalcado tudo bem,

Não vejo problema algum com relação ao outro post que inclusive foi eu quem iniciou :), só gostaria de montar ou formar uma opinião a respeito do porque de o singleton ser considerado por todos como um antipattern, pelo que vi parece que o participante CV do forum detesta este padrao eu como estou pesquisando a respeito so gostaria de entender o motivo, e que este motivo fosse explicado de uma maneira bem clara para que iniciantes tambem pudessem compreender e utiliza-lo de maneira mais consciente e acertada concorda? Levantei esta discussao para que este conhecimento fique bem claro e que contribua com o crescimento de todos.

Abraços