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.
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 )
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
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.
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 ?
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.