Artigo Clube Delphi 111 - RTTI

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
 (5)  (0)

Artigo da Revista Clube Delphi Edição 111.

Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Atenção: esse artigo tem dois vídeos complementares.
Clique e assista o primeiro!

Clique e assista o segundo!

[lead]Do que trata o artigo

Reflexão de objetos. Toda classe deve saber quais são suas propriedades, métodos, campos e atributos. A reflexão, que no Delphi é chamada de RTTI, é um framework interno da ferramenta de desenvolvimento que disponibiliza meios para obtenção de tais informações. Outras plataformas de desenvolvimento, como o .NET e Java, possuem um framework de reflexão muito rico, e só agora, na versão 2010, o Delphi traz recursos melhorados em sua RTTI.

Para que serve

Através da RTTI podemos obter todos os métodos e propriedades, com seus valores, de uma classe instanciada. Por classe entenda-se as suas, que você pode vir a criar, ou até mesmo as existentes no Delphi, como TEdit, TClientDataSet. De posse dessas informações, podemos utilizá-las da forma que for necessário, podendo até mesmo alterar seus valores (no caso de propriedades), usando RTTI.

Em que situação o tema é útil

O uso da RTTI está quase sempre ligado a frameworks que venham a ser desenvolvidos para centralização e otimização dos sistemas. Esses frameworks, grandes ou não, tem por objetivo trazer maior flexibilidade a um sistema e produtividade ao desenvolvedor. Um exemplo seria um framework de validação, onde centralizaríamos na classe a ser validada todo o código responsável por isso, ao invés de replicar por todo sistema uma regra de negócio.

Resumo do DevMan

O Delphi sempre ofereceu recursos de reflexão, porém estes eram limitados quando comparados com a reflexão existente no .Net ou Java. Agora, na versão 2010, a RTTI passou por uma grande atualização trazendo benefícios esperados pelos programadores Delphi. Neste artigo vamos entender o que é reflexão e como ela foi implementada no Delphi. Também veremos como utilizar na prática o novo recurso adicionado, chamado Custom Attribute, além de conhecer novas perspectivas de desenvolvimento. [/lead]

Runtime Type Information (RTTI) é um paradigma de programação em que a informação sobre um tipo pode ser obtido em tempo de execução. As versões anteriores do Delphi já davam suporte à RTTI, porém de uma forma limitada. As propriedades deveriam ser colocadas na seção published. As classes deveriam ter as diretivas {$M+} para que pudessem ser lidas via RTTI ou herdar de uma classe que a possuísse. Alguns tipos não podiam ser publicados como o Real48, array, entre outros.

Sem falar que o compilador não nos dava informações como, por exemplo, quais propriedades foram declaradas no objeto que está sendo lido e quais são herdadas. Pode não parecer, mas esta informação é de extrema importância quando pensamos em "

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?