+3

A vantagem das classes

criado por Roberto Bertó em 06/12/2000 12:00pm
Perguntado na lista php-pt sobre qual era a utilidade das classes e qual era a vantagem de usa-las e nao fazer funcoes separadas uma vez que classes nao passam de um conjunto de funcoes eu tive a inspiracao para o artigo de hoje.

Confesso que quando comecei a utilizar de classes eu pensei: bom, todo mundo usa isso. Vou experimentar. Eu nao sabia para que servia. Cheguei num dilema: usar e descobrir porque todos usam ou continuar programando de uma forma que nem mesmo eu me entendia.

Claro que eu fui experimentar. Li sobre as classes e segui. A principio eu nem usava variaveis de classe. Usava somente funcoes. Ai entao eu comecei a usar o $this-> para invocar as funcoes da mesma classe. Tudo engrenou direitinho e passei a chamar as variaveis pre-declaradas com o $this->variavel. Com isso reduzi o numero de variaveis que eu tinha que passar para as funcoes pelo funcao($variavel1,$variavel2).

Cheguei a uma conclusao sobre a utilidade das classes:
1) elas ajudam a tornar seu script mais organizado uma vez que nao ha confusoes de onde esta cada funcao. Voce pode agrupar as funcoes de mesmo tipo em classes separadas, cada classe tendo um arquivo diferente.
2) muitas funcoes que voce cria sao usadas apenas por outras funcoes. Sao o que chamamos de funcoes privadas (mera linguagem de alguns programadores) dentro das classes. Assim nao ficaria varias funcoes soltas.
3) voce pode passar menos variaveis as outras funcoes
4) voce nao tera que se preoculpar mais com as variaveis globais. Antes voce tinha que declarar um global $variavel ou entao usar o $GLOBALS[variavel]. Agora basta usar o $this->variavel. Eh bem mais pratico.

Obvio que existem muitos outros motivos para voce usar classes. Alguns usam so porque gostam de trabalhar com objetos. E, por mais surrealista que possa parecer, tem os que as usam somente para declarar variaveis. Isso se deve a uma questao, talvez por praticidade de reunir variaveis iguais em uma classe unica ou entao pelo fato de que o usuario possa enviar pela query string (o que vem depois do ? da pagina) uma variavel. Ai voce pode trabalhar com variaveis pensando que elas estao nulas so que um usuario que ja conhece o seu script ou que adivinhou a variavel, ou ate por engano, seta a variavel. Isso pode se tornar um risco para o seu sistema. Mais uma promessa minha: falar de seguranca relacionado a variaveis em algum artigo.

Na semana que vem eu irei postar um novo artigo explicando como se usa as classes.

Mais informacoes:
http://www.php.net/manual/oop.php

Comentários:

Mostrando 1 - 5 de 5 comentários
Aílo Farias disse:
Gostaria muito de aprender a usá-las, mas creio que não estou só.
Se alguém tiver uma dica por onde eu devo começar ou que livro preciso ler ou ainda se nos manuais ensinam eu agradeceria muito.
01/08/2006 12:40pm (~10 anos atrás)

Otimo artigo, eu to começando a descubrir a facilidade de utilizar as classes, e na minha opnião e a forma mais correta de se programar
18/04/2006 6:43am (~10 anos atrás)

Diogo Gomes disse:
Engraçado é que com o tempo começamos a perceber o quanto as funções e as classes são úteis, no meu caso já descobri as funçoes, as classes comecei a treinar.
26/08/2003 7:45pm (~13 anos atrás)

Defina melhor o que tu acha que eh necessario. Ou melhor: quando uma classe/objeto se faz necessario?

Bem, o que atualmente estou fazendo em projetos pequenos e nao muito abstraidos (leia-se tudo exceto o OurCMS (http://ourcms.sourceforge.net), é criar uma classe para o acesso a dados, funcoes comuns, etc, e a programacao plana fica para o que junta os objetos/classes e funcoes da classe.

26/11/2002 9:20pm (~14 anos atrás)

Em minha humilde o pinhão :)

O uso das classes e objetos, facilita muito, quando você começa a abstrair os proplemas internos, relativos ao desenvolvimento de tua classe, dos teus programas. Nao sei se me explico:
Quando usas uma função, deves entender, preferencialmente, não só QUE faz a dita cuja, como o COMO ela faz isto. Até pela preocupação das próprias variáveis.
Quando você absorve um estilo próprio de desenvolver tuas classes, uma vez que sabe que ela funciona legal, já não precisa mais preocupar-se de COMO funciona. Apenas saiba como funcionam seus métodos, e suas propriedades, e já terá suficientes feramentas.
No entanto, duas coisas:

Primeiro, quando desenvolva uma classe, não tenha pena de prová-la ao extremo. Com todas as possibilidades que tiveres. Cometa erros ao chama-la, troque os valores de variáveis, Ponha bobagens nas propriedaes, etc. Assim terás, depois de uma bateria de testes, uma função "a prova de balas", a qual, poderás reutilizar em outros projetos, sem pestanejar, e sem perder tanto tempo codificando funções novas, que fazem o mesmo que as que já havias escrito antes.

Segundo, um ponto polêmico: Evite transformar-se em um objeto ambulante :) Muitos programadores adotam objetos, porque está de moda, e acabam fazendo objetos para tudo, muitas vezes, sem necessidade.
Pessoalmente, Procuro fazer OOP em tudo o que me seja estritamente necessário, e uso programação convencional em tudo o que eu mesmo não me possa convencer da necessidade de objetos.

Espero ter contribuido em algo. Lembre, está é só minha opinião, o que, como sou novo na linguagem, pode valer bem pouquinho (ou nada, talvez ;)


[]'s
26/11/2002 2:31pm (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)