Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Vantegens ou desvantagens de métodos estático

Durante o curso nunca geramos métodos estáticos. Por exemplo no Gerador de XML, o método que gera o XML, chamamos como: string xml = new GeradorDeXML().GerarXML(objeto);

No static os objetos pesariam na memória durante a vida da aplicação? Tem alguma vantagem ou desvantagem de usar por exemplo: public static string GeraXML(object o) E chamar apenas como: string xml = GeradorDeXML.GerarXML(objeto);

Obrigado, Vinicius

4 respostas
solução!

Cara, acho que não são gerados pq não chega a ser necessario, eu penso que tudo varia de acordo com o que vc precisa, se vc precisa de ficar gerando um xml em varios momentos na sua aplicação, coloca ele estatico e boa, agora, caso contrario pra que criar um metodo estatico se vc irá usar ele poucas vzes ?

No static os objetos pesariam na memória durante a vida da aplicação? As chamadas de método static são MUITO mais rápidas que as não static. Porque? Porque eles sao resolvidos em tempo re compilacao, e nao de execucao!

Da uma olhada no padrao singleton

Renan, concordo que no caso é bem desnecessário o método como static. Era mais uma curiosidade porque, sendo mais "fácil" de chamar, não precisando instanciar e me parecendo mais rápido, eu sempre que posso crio métodos como geradorDeXml com static. Gostaria de saber se ele tem alguma desvantagem.

Singleton resolve bem também, ano passado ele me quebrou um belo galho de performance em um método que gerava chave de criptografia.

Saquei, neste caso vamos problematizar o metodo estatico para enxergar o cenario.

Pq tudo depende da forma que vc constroi o sistema, se eu crio um metodo estatico para gerarXML (vamos ver este seu caso ai), entao, toda vez q eu precisar gerar um xml eu faço: *Como sugerido por vc

string xml = GeradorDeXML.GerarXML(objeto);

Até ai tudo bem, funcionaria legal sem nada de mais, lembrando que vc na sua aplicação tem vaarios lugares chamando este geradorDeXML, todo mundo funcionando bonitinho. Ai suponhamos que agora vc tenha que gerar alem do XML , arquivos em JSON e arquivos de texto. Vc criaria outras classes GeradorDeJSON e GeradorDeTexto (seguindo a mesma logica), no entanto, agora eu preciso que os meus geradores (texto,json,xml,etc...) sejam capazes de incluir em um sistema de controle de tarefas onde iria criar uma interface Gerador que as demais classes (geradordetexto,json,xml,etc..) teriam que implementa-la? Ai começaria o problema com os estáticos, basta ter uma "mudança" pode derrubar sua implementação.

Bem, isso não é motivo pra evitar os metodos estaticos, é so tomar cuidado mesmo para com a sua utilização

Legal, valeu pelas dicas!