Revista MSDN Magazine Edição 16 - Compartilhando Variáveis entre Instâncias

Artigo Originalmente Publicado na MSDN Magazine Edição 16

Clique aqui para ler todos os artigos desta edição

 

Compartilhando Variáveis entre Instâncias

por Roberto Lopes

Este artigo discute

Este artigo usa as seguintes tecnologias:

·Compartilhamento de variáveis entre instâncias, sem o uso de variáveis globais (ou de método)

 

VB.Net, OOP

Chapéu

VB.Net

 

Download:

CompartilhandoVariaveis.zip (92 KB)

 

 

Neste artigo vou mostrar duas alternativas para o compartilhamento de variáveis através de instâncias em Visual Basic, buscando estar dentro das melhores práticas de desenvolvimento, evitando fazer uso de variáveis globais (ou de módulo), recurso que não se enquadra nos princípios da orientação a objetos.

 

Um breve histórico

O Visual Basic.Net sofreu uma significativa evolução, adquirindo todas as credenciais necessárias para receber definitivamente a denominação de uma linguagem orientada a objetos. Portanto, existe a necessidade (para não dizer a obrigatoriedade) de seus usuários acompanharem esta evolução.

Deste modo, o recurso de variáveis globais, que em versões anteriores do Visual Basic eram um “mal necessário”, a partir do momento que a linguagem mudou seu paradigma, precisa deixar de ser usado, uma vez que “fere” diretamente os princípios básicos da orientação a objetos.

Não tenho como objetivo ser “purista” quanto os fundamentos da orientação a objetos, citando por exemplo, a utilização de patterns como MVC (Model View Controller), delegates ou algo parecido. Vou abordar uma técnica simples,  eficiente e funcional para o compartilhamento de variáveis, dentro dos princípios da orientação a objetos.

 

Navegando pelas instâncias

Nas versões anteriores do Visual Basic, compartilhar uma variável entre os formulários de um projeto, significava criar uma variável com o modificador “Global” ou “Public” em um módulo de código (arquivos com extensão BAS). Deste modo, esta variável poderia ser manipulada por qualquer um dos formulários do projeto, inclusive pelo próprio módulo. Apesar da versão VB.Net ainda permitir a utilização de variáveis de escopo global, esta é uma prática questionável e não recomendável (pelos motivos citados anteriormente).

A primeira técnica que vou apresentar, consiste na criação de uma classe utilitária, que utiliza variáveis membro e propriedades estáticas (Shared), podendo ser acessadas por qualquer uma das classes do aplicativo sem a necessidade de declaração ou criação de instância.

A segunda técnica consiste em passar a instância que contém a variável membro a ser compartilhada para uma outra instância de classe através do construtor da classe receptora. Se corretamente utilizado, poderiamos dizer que este modo de compartilhamento de variáveis é ainda melhor do que a técnica de classes utilitárias, uma vez que sempre estariamos utilizando objetos com finalidades definidas (classes reais), ao invés de classes com o único objetivo de compartilhar variáveis.

 

Classe Utilitária

Uma classe utilitária tem como finalidade conter variáveis membro, métodos e propriedades dentro do escopo de uma aplicação. Existem duas características que devem ser aplicadas a uma classe para que ela possa ser denominada Utilitária:

 

·Todos os seus membros, propriedades e métodos precisam ser estáticos (Shared)

·Possuir um construtor private vazio, uma vez que uma classe utilitária não pode ser instanciada

 

Crie um novo projeto do tipo Windows Application em VB.NET e não altere nenhuma propriedade do projeto, deixando todos os nomes/valores default. Crie uma nova classe chamada “Variaveis” e adicione o código apresentado na Listagem 1:

 

Listagem 1 -  Classe Utilitária Variaveis

 

Public Class Variaveis

  'Inicialize as variáveis membro.

  'Se solicitadas antes de atribuídas, uma exception é gerada

" [...] 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