Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

MYSQL & MSQL

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

fccd
Pontos: 10353

Visite a página de perfil de Olavo AlexandrinoPolimorfismo e PHP 5
por Olavo Alexandrino
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Amante de PHP e de Orientação à Objetos resolvi publicar este artigo e mostrar como a nova versão do PHP implementa este conceito poderoso de Linguagens Orientada a Objetos. Vale a pena conferir!
Vote aqui!
Média de Votos Atual: 6.97
Total de Votos: 39
Nota:   

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 mais explicações mais detalhadas sobre as mudanças do PHP 4 pra 5 neste link:
http://www.phpbrasil.com/articles/article.php/id/831


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.



<< Anterior 1 2 3 4 5 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

Interfaces! =)
publicado por Léo Hackin - 2005-03-28 09:44:00

Bem legal o artigo, embora sentir que o nível "conhecimento mínimo : intermediário" reinou ... =)

Fodasso o lance de restrição de argumentos obrigado o cara a colocar classes implementadas com uma interface definida... não conhecia o recurso ainda (alias, tenho que ver muita coisa nesse PHP5 ainda...) ...

e o encapsulamento?
publicado por Julio Cesar Marques - 2005-03-30 11:41:51

Já ouvi dizer que tb pode-se compilar o código em uma Dll como o .Net vai fiar melhor ainda!
embora ainda não suporte herança multipla.

OO
publicado por Rogério Bragil - 2005-03-30 21:57:15

Olavo, muito bom o artigo!

Com relação a herança múltipla, não é muita vantagem, tanto que Java não possui esse recurso (dá mais problema do que benefício).

Porém, através de interfaces, pode-se forjar a herança múltipla, pois uma classe pode herdar de outra classe e implementar uma interface ao mesmo tempo (assim como o PHP5).

O encapsulamento está no uso de classes, onde vc só deixa visível o que for relevante, ocultando os detalhes de implementação.

OOP
publicado por rafaelsilva - 2005-04-02 16:27:24

Eu programo em ASP, PHP, e plataforma .NET Mcirosoft, mas PHP tem um potencial totalmente fora do comum por ser uma linguagem free dentre outras vantagens.

Tem muita gente que fala mau de PHP, fala que JAVA é tudo, mas não é assim, .NET e PHP estão ai para mostrar que a coisa nao funciona bem assim.

PHP é muito bom! Orientado a Objetos é melhor ainda.

Parabens pelo artigo!

uma luva
publicado por Newton Wagner - 2005-04-05 10:37:52

po, caiu como uma luva. estava tentando descobrir como implementar interfaces pra fazer um sistema de arquivos aqui.

Valeu cara.. muito bom o artigo. Mostrou o milagre e o santo, muito bem explicado.

hosts
publicado por Newton Wagner - 2005-04-05 10:50:18

outra coisa.. alguém conhece hospedagens que já estão rodando o PHP5?

aqui no trampo tranquilo de testar e rodar as aplicações para a empresa, mas desenvolver sites com essas implementações e depois não ter hospedagem é mals.

Host
publicado por Leandro Maniezo - 2005-04-08 09:00:57

Cara sem querer fazer propaganda mas vai pra locaweb tem o php5 é so pedir e sem contar o serviço dos caras são bons!!! Mas é caro.. mas tratando de aplicações grandes, precisa de uma segurança vale a pena tenho todo serviço de host da empresa aqui hospedado la... Ai vai da sua aplicação precisar ou não de um bom provedor!?! o meu site pessoal por exemplo uso um outro tabajara rs..rs..

dúvida
publicado por filipebfs - 2005-04-11 15:40:33

olá! sou programador delphi... estou iniciando em php...

gostaria de uma explicação sobre a declaração do método "addItem" na classe "FiguraPolimorfismo":

public function addItem( &$arrIFigura , IFigura $objFigura)

...naum entendi o símbolo "&" no parâmetro "arrIFigura"... e num sabia q podia especificar o tipo (ou interface) do parametro, como em "objFigura".

olá
publicado por Olavo Alexandrino - 2005-04-11 18:11:35

sobre o "&", dê uma olhada em:

- Referências ou Ponteiros em PHP?
http://www.phpbrasil.com/articles/article.php/id/649

e sobre o tipo da Interface em:
- Indução de Tipo
http://br.php.net/manual/pt_BR/language.oop5.typehinting.php

Bem vindo ao PHP!
;)


Parabéns
publicado por Alex Oliveira Barradas Filho - 2005-05-30 12:47:39

Parabéns pelo artigo, sou novo no php,mas já percebi como é facil trabalhar na linguagem php, o que é uma grande vantagem.
Mas é uma novidade para mim você ter como trabalhar no php herança multipla forçando através de interfaces e sobre o polimorfismo é sem duvida uma ferramanta essencial na programação orientada a objeto, parabéns ao artigo e a versão do php 5 :).

Muito bacana...
publicado por Wagner Bianchi - 2005-07-20 14:48:01

Com todas estas descobertas e atenção dos desenvolvedores do PHP, além temabém do projeto da IBM de incorporar a seus trabalhos tal linguagem, a vida ao PHP parece se tornar cada vez mais longa, não deixando de ser uma linguagem tão dinâmica quanto muitas por aí que são como "grifes caras" e tem a mesma consistência!!

Parabéns pelo publicado, embora eu esteja ainda me ambientando com todo esse mundo agora. Estou estudando C++ e PHP ao mesmo tempo e estou tendo uma aula de história conceitual.

Abraços!

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 1.018 segundos