Pode parecer uma pergunta meio ridícula, mas surgiu essa dúvida, então eu trago pra cá…
Num sistema que eu estou desenvolvendo eu uso umas facade com todos os métodos static (fica tipo a Math) e tudo funciona legal. Mas vendo uns exeplos em sites e revistas, vi que na mesma situação o pessoal usa Facades instanciáveis que são singleton. Aí vai a dúvida: tem alguma diferença de desempenho entra as duas implementações. No fim fica tudo igual, já que a classe com tudo static funcionaria como uma “instância única”.
bom, o unico problema que vejo em uma classe tudo static (como a Math) é que isto é um atentado a orientação a objetos, fica exatamente como programação procedural
singleton. 99% das vezes
pois se voce quiser mudar uma classe com tudo static, para nao static, vai quebrar codigo de todo mundo
se voce quiser mudar um singleton, para poder ser instanciado mais de uma vez, nao vai quebrar o codigo velho
programacao defensiva
Mas fica aqui a questao de bom-gosto e estilo… nao eh soh sair usando singleton 99% das vezes quando tudo que vc precisava era uma chamada de metodo estatico
E, Paulo, se vc vai trocar de static pra singleton, vc nao deveria ter nenhum problema, ja que se a coisa tiver sido bem codificada, o teu singleton/static tah escondido em uma AbstractFactory
E, Paulo, se vc vai trocar de static pra singleton, vc nao deveria ter nenhum problema, ja que se a coisa tiver sido bem codificada, o teu singleton/static tah escondido em uma AbstractFactory :D[/quote]
certeza disso?
da um codigo exemplo ai. pelo q eu estou pensando nao funciona isso. mas nao sei o que voce esta pensando.