Artigo Clube Delphi 94 - Orientação a Objetos no Delphi for PHP

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Como aplicar conceitos de POO em aplicações PHP?

Esse artigo faz parte da revista Clube Delphi edição 94. Clique aqui para ler todos os artigos desta edição

Delphi for  PHP

Orientação a Objetos no Delphi for PHP

Como aplicar conceitos de POO em aplicações PHP? – Parte 2

 

Como prometido em meu primeiro artigo vamos dar continuidade a este assunto tão extenso que é a orientação a Objetos. Como dito anteriormente toda linguagem dita OO deve estar apoiada nos pilares desta filosofia que são: Herança, Encapsulamento, Abstração e Polimorfismo e o PHP 5 implementa essas quatro características inclusive o polimorfismo que é o foco do nosso artigo.

Muitos programadores vêem a herança como a solução de seus problemas, porém se usada indiscriminadamente ele pode ser um feitiço que se vira contra o feiticeiro, isto porque se não tomarmos os devidos cuidado acabamos por acoplar todo o nosso código através da herança. Porém se há algo que justifique o uso da herança este se chama polimorfismo.

O polimorfismo é um dos assuntos mais importantes na POO. Com o uso de classes e heranças conseguimos facilmente descrever uma situação da vida real além de conseguir estender projetos por meios da reutilização de código. Mas se de um lado o polimorfismo é um dos assuntos mais importantes da POO é também sem dúvida nenhuma um dos mais difíceis de ser compreendido. Isto porque muitos que se aventuram pela primeira vez na OO entram ainda com uma mentalidade procedural e enxergando as classes como entidades do banco de dados tornando mais difícil a compreensão da POO como um todo.

 

Nota do DevMan

O termo Programação Procedural (ou programação procedimental) é às vezes utilizado como sinônimo de Programação Imperativa (paradigma de programação que especifica os passos que um programa deve seguir para alcançar um estado desejado), mas o termo pode se referir (como neste artigo) a um paradigma de programação baseado no conceito de chamadas a procedimentos. Procedimentos, também conhecidos como rotinas, sub-rotinas, métodos, ou funções simplesmente contêm um conjunto de passos computacionais a serem executados. Um dado procedimento pode ser chamado a qualquer hora durante a execução de um programa, inclusive por outros procedimentos ou por si mesmo.

 

Polimorfismo

Teoricamente e a grosso modo entende-se por polimorfismo “a capacidade que um mesmo método tem de se comportar de maneira diferente dependendo de qual classe ele foi chamado”. Nós conseguimos isso declarando um método em uma classe base e o sobrescrevemos em uma classe herdada, facilitando assim o desenvolvimento e reaproveitamento códigos.

Antes de mais nada é importante deixar claro que a linguagem que estamos trabalhando é o PHP e que o mesmo é interpretado, fracamente tipado e sendo assim não há a necessidade de se declarar variáveis com seus tipos. Mas o que isso tem a ver com polimorfismo? Tudo! Observe o código da Listagem 1.

 

Listagem 1. Polimorfismo no Delphi Win32

 

unit SeresVivos;

 

interface

 

type

  TServivo = class

    procedure ProduzirSom;

  end;

 

  TCachorro = class(TServivo)

    procedure ProduzirSom; 

  end;

 

  THomem = class(TServivo)

    procedure ProduzirSom; 

  end;

 

implementation

 

uses

  SysUtils, Dialogs;

 

{ TCachorro }

 

procedure TCachorro.ProduzirSom;

begin

  ShowMessage('Cachorro Latindo !!!');

end;

 

{ TServivo }

 

procedure TServivo.ProduzirSom;

begin

  raise Exception.Create('Nem todo ser vivo produz

    som !');

end;

 

{ THomem }

 

procedure THomem.ProduzirSom;

begin

  ShowMessage('Homem Falando !!!');

end;

 

end.

 

procedure TForm1.Button1Click(Sender: TObject);

var

  Ser: TSerVivo;

begin

  Ser := THomem.Create;

  Ser.ProduzirSom;

end;

 

No código da "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?