DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Clube Delphi Edição 31 - Polimorfismo aplicado

Artigo da Revista Clube Delphi Edição 31.

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



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
 

Polimorfismo aplicado

Técnicas de orientação a objetos na prática

Além de desmistificar um dos conceitos mais interessantes da orientação a objetos, esse artigo irá discutir e propor uma metodologia para a implementação de um cenário bem comum em aplicações comercias: a integração com impressoras fiscais.

Conceitos

Chamamos de polimorfismo a capacidade de tratar objetos de tipos diferentes de uma mesma maneira, desde que eles tenham a mesma superclasse. Isso é muito comum na programação do dia-a-dia. Embora não percebamos, usamos essa abordagem constantemente, induzidos pela própria arquitetura da VCL.

Sempre que chamamos o método Free de um determinado objeto, por exemplo, estamos usando o polimorfismo para o liberarmos de forma correta. Para entendermos isso melhor, vamos recorrer ao código fonte da VCL e analisar um trecho da classe TObject, definida na unit System.pas:

  TObject = class

    {...}

    procedure Free;

    destructor Destroy; virtual;

  end;

  {...} 

  procedure TObject.Free;

  begin

    if Self <> nil then

      Destroy;

  end;

Como podemos ver, o método Free é estático e o "destructor" Destroy é virtual (uma explicação sobre mecanismos de chamada de métodos será vista mais à frente). O método Free verifica se a própria instância encontra-se assinalada e depois chama o Destroy. Este é normalmente reimplementado nas classes descendentes de TObject para assegurar a desalocação da memória previamente reservada por elas.

Quando chamamos o método Free, sempre será executado o comportamento codificado na classe TObject, porém com Destroy é diferente: este comportamento será o da codificação da classe corrente.

Mecanismos de chamada

No que diz respeito ao modo de chamada (dispatch), um método pode ser classificado em static, virtual ou dynamic. Vamos ver uma pequena descrição de como funciona cada um deles:

static – Esse é o padrão para todos os métodos que não especificarem um modificador. Esses métodos são linkados à referência (variável) em tempo de compilação, por isso são bem mais rápidos que os do tipo "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Fernandovm
Borland Delphi Certified Developer e detém oito certificações BrainBench em várias áreas de desenvolvimento de software. Palestrante da Borland Conference Brasil (BorCon 2002), é criador e mantenedor do projeto TDSExpress (www.tdsexpress.hpg.com.br). Atualmente ministra cursos de Delphi avançado e p...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03