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

POO: Objetos Auto-Instanciáveis

Utilizando cláusulas opcionais da Unit para criar objetos dinamicamente

 

A programação Orientação a Objetos é uma tecnologia que vêm sendo amplamente difundida e utilizada, pois a mesma proporciona maior facilidade e praticidade na manutenção de objetos em aplicações. Algumas vezes nos deparamos com procedimentos que precisam ser automatizados dispondo de classes para que haja maior rapidez e eficiência na manutenção, mas que não atendem às necessidades devido ao fato de precisarem ser instanciadas manualmente. Aqui veremos como instanciar classes para executar seus procedimentos e funções sem que um objeto esteja efetivamente instanciado na memória, entretanto sua criação torna-se praticamente automática apenas quando necessária.

Esta técnica é muito útil quando precisamos utilizar um objeto onde não há a certeza de que uma instância já se encontra alocada na memória, porém no momento do uso exige-se que ela seja instanciada para chamadas posteriores. Podemos dizer então que o objeto será dinamicamente criado no momento oportuno para que seja possível utilizar seus métodos e propriedades e ao fim ele é destruído e liberado o espaço de memória em que ele ocupava.

 

Entendendo a criação de Objetos e a problemática

Quando necessitamos instanciar um objeto é preciso fazer uma chamada ao método Create para que seja alocado o espaço necessário na memória e o objeto realmente existirá. No primeiro momento quando vamos instanciar um objeto na memória, o valor de sua variável é igual à nil, ou seja, nada. A partir do momento que é efetuada uma atribuição da chamada Create o programa associa a variável ao novo endereço de memória alocado que contém toda a classe instanciada. Na Listagem 1 temos um exemplo de uma classe que chamamos de TMinhaClasse, salva em um arquivo chamado UMinhaClasse.pas, veremos a classe a seguir de forma mais detalhada:

 

...

Quer ler esse conteúdo completo? Tenha acesso completo