none
Methodos static ou de instancia RRS feed

  • Pergunta

  • Bom dia a todos!!

    Trabalho com desenvolvimento web, porem tenho uma grande dúvida, que todos falam que não se pode utilizar variável, class e methodo static. Qunado utilizar um methodo static ou um methodo normal de instacia na web?


    quarta-feira, 27 de junho de 2012 15:03

Respostas

  • Olá Augusto,
    Tudo bem?

    O uso de static é diferente do uso de variáveis de instância. Seu uso é bastante específico e não faz parte do grupo "NÃO SE PODE UTILIZAR". Para utilizar classes métodos e variáveis estaticas deve se entender o funcionamento das mesmas.

    Um método estático para ser executado não depende da instância de um objeto. Geralmente seu uso deve ser feito quando precisa-se executar um determinado comportamento, que não depende do estado atual do objeto, isto é, não depende dos valores atuais de propriedades da classe que o contém. Certa vez li algo como: "os métodos estáticos são solitários, um não depende do outro, um não conversa com o outro... apenas executam o que tem de fazer sem depender de mais nada existente na classe". Um exemplo de método estático é o COPY da classe FILE, este método simplesmente copia um arquivo de um dado caminho para um outro caminho. Simples, sem depender de valores de outras propriedades da classe FILE, apenas dependendo dos valores passados por parâmetro. Ao contrário do método EXECUTENONQUERY da classe SQLCOMMAND, que depende de diversos outros recursos para executar com sucesso, recursos como: tipo do comando a ser executado, uma conexão válida com o banco de dados, entre outros.

    As classes estáticas devem ser utilizadas apenas em um caso: quando todos os seus métodos forem estáticos.

    Variáveis estáticas são diferentes, pois elas são mais complexas... Pois uma vez criada sua instância, então seu alocamento de memória irá persistir por todo o tempo no qual a aplicação mantiver-se ativa. Deve-se manter cuidado quando utilizar variáveis estáticas, pois uma vez valorizada ela acaba tornando-se um valor global para toda a aplicação.

    Agora, a sua pergunta era: "Quando utilozar um método static ou de instância na web?"... Resposta: depende do cenário. Com base nessas informações que lhe passei vc terá de ser capaz de avaliar e entender quando será necessário utilizar um recurso estático.

    O uso de recursos estáticos é bastante interessante. Existe um Design Pattern chamado Singleton que cria um ponto único de acesso global para toda a aplicação graças ao uso de recursos estáticos.

    Vale a pena estudar essas coisas...

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Sugerido como Resposta Murilo Kunze quarta-feira, 27 de junho de 2012 16:25
    • Marcado como Resposta augustoICE quarta-feira, 27 de junho de 2012 17:37
    quarta-feira, 27 de junho de 2012 16:06

Todas as Respostas

  • Olá Augusto,
    Tudo bem?

    O uso de static é diferente do uso de variáveis de instância. Seu uso é bastante específico e não faz parte do grupo "NÃO SE PODE UTILIZAR". Para utilizar classes métodos e variáveis estaticas deve se entender o funcionamento das mesmas.

    Um método estático para ser executado não depende da instância de um objeto. Geralmente seu uso deve ser feito quando precisa-se executar um determinado comportamento, que não depende do estado atual do objeto, isto é, não depende dos valores atuais de propriedades da classe que o contém. Certa vez li algo como: "os métodos estáticos são solitários, um não depende do outro, um não conversa com o outro... apenas executam o que tem de fazer sem depender de mais nada existente na classe". Um exemplo de método estático é o COPY da classe FILE, este método simplesmente copia um arquivo de um dado caminho para um outro caminho. Simples, sem depender de valores de outras propriedades da classe FILE, apenas dependendo dos valores passados por parâmetro. Ao contrário do método EXECUTENONQUERY da classe SQLCOMMAND, que depende de diversos outros recursos para executar com sucesso, recursos como: tipo do comando a ser executado, uma conexão válida com o banco de dados, entre outros.

    As classes estáticas devem ser utilizadas apenas em um caso: quando todos os seus métodos forem estáticos.

    Variáveis estáticas são diferentes, pois elas são mais complexas... Pois uma vez criada sua instância, então seu alocamento de memória irá persistir por todo o tempo no qual a aplicação mantiver-se ativa. Deve-se manter cuidado quando utilizar variáveis estáticas, pois uma vez valorizada ela acaba tornando-se um valor global para toda a aplicação.

    Agora, a sua pergunta era: "Quando utilozar um método static ou de instância na web?"... Resposta: depende do cenário. Com base nessas informações que lhe passei vc terá de ser capaz de avaliar e entender quando será necessário utilizar um recurso estático.

    O uso de recursos estáticos é bastante interessante. Existe um Design Pattern chamado Singleton que cria um ponto único de acesso global para toda a aplicação graças ao uso de recursos estáticos.

    Vale a pena estudar essas coisas...

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Sugerido como Resposta Murilo Kunze quarta-feira, 27 de junho de 2012 16:25
    • Marcado como Resposta augustoICE quarta-feira, 27 de junho de 2012 17:37
    quarta-feira, 27 de junho de 2012 16:06
  • Fernando, muito obrigado cara. Foi bem claro, quanto ao Design Pattern, vou correr atrás disso sim, já vim alguns lugares que utilizam isso.

    Valeu mesmo.

    quarta-feira, 27 de junho de 2012 17:39