Desvendando Métodos Anônimos

Neste artigo veremos o conceito de métodos anônimos, como fazer as declarações de tipo de método. Será feita uma revisão ao uso de variáveis, ponteiros para procedimentos, funções e métodos de objetos que geralmente são empregados em eventos.

Artigo do tipo Exemplos Práticos
Recursos especiais neste artigo:
Conteúdo sobre boas práticas
Métodos Anônimos
Neste artigo veremos o conceito de métodos anônimos, como fazer as declarações de tipo de método. Será feita uma revisão ao uso de variáveis, ponteiros para procedimentos, funções e métodos de objetos que geralmente são empregados em eventos.

Abordaremos algumas situações onde podemos empregar este recurso, como em DataSets, StringLists, gerenciamento de transações a nível de banco de dados, componentes visuais, Threads entre outros.

Em todos estes exemplos será realizado um comparativo do modo tradicional de implementação com o uso de métodos anônimos. Facilmente perceberemos o quanto este recurso da linguagem torna nosso código mais limpo, seguro e de fácil manutenção.

Em que situação o tema é útil
É um recurso útil em situações de refatoração de código, minimizando códigos redundantes, demonstrando métodos que podem realizar procedimentos dinâmicos de acordo com a necessidade. Vale comentar que é aplicável no desenvolvimento de todos os tipos de aplicações Delphi, tanto em ambiente Client-Server quanto Multicamadas e Web.

Programadores Delphi na sua maioria estão acostumados a desenvolver sempre da forma mais RAD (Desenvolvimento Rápido de Aplicações) possível. A ferramenta nos permite em pouco tempo projetar sistemas e disponibilizar aos clientes em ambiente de produção. Porém esta não é a melhor forma de desenvolvimento, como já sabemos. Isto também não quer dizer que devemos instanciar todos os Forms, Buttons, Edits e demais componentes “na unha”, para depois liberarmos todos manualmente. Devemos utilizar o modo RAD do Delphi para o desenvolvimento de interfaces (GUI). No entanto, para tarefas como efetuar conexões com banco de dados, escrever regras de negócios e rotinas de cálculo, por exemplo,deve-se usar todos os recursos que a Delphi Language nos disponibiliza, tornando o código mais limpo, facilmente expansível, além de contribuir com a facilidade de manutenção.

Métodos anônimos são um dos recursos da Delphi Language presentes a partir da versão 2009 do Delphi. Historicamente falando, esta versão trouxe diversas e importantes melhorias à Linguagem, trazendo consigo a nova RTTI recheada de melhorias, independência do DataSnap Framework da tecnologia COM+, inclusão dos Generics (BOX 1) e Unicode (BOX 2), por exemplo. Este recurso apesar de não ser tão recente, ainda é pouco utilizado pelos desenvolvedores.

BOX 1. Generics

Generics é um recurso que permite ao desenvolvedor a criação de tipos parametrizados, ou seja, parâmetros passados para nossa classe ou método serão substituídos por um tipo. Esse tipo pode ser primitivo (Integer, Double, Boolean), estruturado (Records) ou complexo (TClass). É utilizado muito para criar listas de objetos, pois com seu uso ao passar um objeto que não pertence ao tipo especificado na lista, recebemos em erro em tempo de compilação e não em tempo de execução como ocorria nas versões do Delphi que não tínhamos suporte ao recurso.

BOX 2. Unicode

Unicode é um padrão que possibilita os dispositivos fazerem a representação e manipulação, de forma correta, em textos de qualquer sistema de escrita existente. Permite o uso, por exemplo, de caracteres japoneses, chineses, russos e etc.

Como o próprio nome sugere, os métodos anônimos são procedimentos e funções que não tem um nome associado. Podemos associar blocos de código a uma variável ou usarmos como parâmetro para um método. Também há como executar métodos através de chamadas sem nome, ou seja, podemos ter vários métodos sem nome e executá-los da melhor forma, cada um de acordo com a necessidade. É um recurso semelhante aos Delegates (BOX 3) e Closures (BOX 4) da plataforma .NET, além de serem usados por algumas outras linguagens de programação, como o JavaScript por exemplo.

BOX 3. Delegate

Delegates são referências diretas para um método através de uma variável ponteiro, ela possui o endereço de memória para aquele método. São semelhantes aos eventos do Delphi, onde temos referências a procedures. "

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados