Polimorfismo e PHP 5

Amante de PHP e de Orientação à Objetos, resolvi escrever este artigo e mostrar como a nova versão do PHP pode implementar esse poderoso recurso típico de linguagens orientadas à objetos: o Polimorfismo.

[ Hits: 56.211 ]

Por: Olavo Alexandrino em 18/04/2005 | Blog: http://oalexandrino.com


Entendendo o conceito



Sempre foi grande a queixa por parte dos desenvolvedores o fraco suporte à Programação Orientação a Objetos (POO) que o PHP 4 oferecia. A falta de recursos como: modificadores explícitos (public, private), classes abstratas, interfaces, chamadas de objetos com várias hierarquias e outras muitas características fazem bastante falta quando o assunto é o Desenvolvimento Orientado a Objetos. Pra se ter uma idéia, o VBScript, a linguagem padrão do ASP (Active Server Pages da Microsoft), já tinha modificadores como private e public.

Aí veio o PHP 5 para resolver nossos problemas. Ou melhor, resolver boa parte de nossos problemas. Foram adicionadas grandes melhorias no que se diz respeito à POO, porém devemos saber que o passo dado não foi definitivo, pois existem várias características de POO que não foram ainda totalmente definidas.

Bem, o propósito deste artigo não é discutir sobre as novas funcionalidades do PHP 5 e nem definir os vários conceitos de POO e sim falar apenas de um deles: O Polimorfismo, e saber como ele pode ser implementado no PHP 5.

Você pode ter explicações mais detalhadas sobre as mudanças do PHP 4 pra 5 neste link:
Então vamos lá! Falaremos de Polimorfismo! O que seria isso? Vamos pela definição do nome: polimorfo + ismo. Que é uma referência à palavra grega "polymorphos", ou seja, "que se apresenta sobre numerosas formas", "sujeito a variar de forma"(3).

Então o que teríamos em programação? Seria a característica que um objeto teria de apresentar diferentes comportamentos em situações ou contextos diferentes. A idéia de Polimorfismo está estritamente ligada à existência de interfaces (uma das características de uma Linguagem OO). Pois é a partir delas que podemos "classificar" famílias de objetos que tem comportamentos em comum, porém tem implementações diferentes. Queremos executar a mesma ação de um determinado objeto, qualquer que seja o seu tipo.

    Próxima página

Páginas do artigo
   1. Entendendo o conceito
   2. Exemplo do conceito
   3. Implementação
   4. Testes
   5. Comentários finais
Outros artigos deste autor

Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 2)

A simples classe Date Operations

Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 1)

Paginando resultados com a classe Generic Easy Pagination

Leitura recomendada

Engenharia de Software - Fazer melhor o software e fazer o software melhor

Método de Newton e PHP

Organizando projetos com a classe FastTemplate (parte 1)

Trabalhando conteúdo dinâmico com Smarty

Utilizando PEAR

  
Comentários
[1] Comentário enviado por ramonklown em 19/04/2005 - 13:07h

Esse "poliformismo" já existia no PHP4. PHP sempre foi uma linguagem bem dinamica.

Me parece que o Brasil conheceu o PHP na versão 5 e só agora é que a linguagem ficou boa.

A maior novidade do PHP5 é a abilidade do PRADO, simplexml entre outras que não vou ficar listando.

[2] Comentário enviado por rsantos em 19/04/2005 - 15:43h

Vejam o conteúdo desse artigo(http://www.phpbrasil.com/articles/article.php/id/833) nele aborda quase todas as novas implementações do Php 5.

O link abaixo(http://www.phpbrasil.com/articles/article.php/id/831) tem apenas links pra outros sites.

[3] Comentário enviado por oalexandrino em 20/04/2005 - 00:00h

O Brasil já conheceu o PHP há muuuuiiito tempo e ela sempre foi uma linguagem excelente. O que acontece é que ela fica melhor a cada versão. Não entendi seu comentário.
a
Esse "polimorfismo" NÃO existia em PHP 4!

A implementação que usei depende de "Interfaces" e "Indução de Tipo".

E isso NÃO existe em PHP 4, você apenas pode simular de outras formas.

[4] Comentário enviado por xploitx em 19/05/2009 - 20:17h

Simplesmente d+.
Muito bem explicado, parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts