VB 2005 - Compreendendo Partial Classes
Dentre os inúmeros novos recursos disponíveis na nova versão da plataforma .NET esta o suporte para classes parciais ou partial class presentes nas linguagens VB.NET 2005 e C#.
Usando o conceito de partial class você pode dividir a definição de sua classe em mais de um arquivo físico.
Lembre-se que no VB.NET quando você vai definir uma classe você cria um arquivo com extensão .vb e ele irá conter a classe completa em um único arquivo; desta forma você inicia e termina a classe no mesmo arquivo físico. Ex: Classe1.vb
Usando o conceito de partial class você pode separar o código de uma classe em mais de um arquivo físico.
Logicamente não há diferença alguma para o compilador pois quando uma partial class é compilada o compilador agrupa todos os arquivos da classe parcial gerando uma única entidade.(O código da linguagem intermediária formado é o mesmo).
Para definir uma classe parcial basta usar a palavra-chave Partial. Vejamos um exemplo:
Public Class
minhaClasseParcial Private idade as Integer Property _idade() As Integer Get return idade End Get Set(ByVal valor as Integer) idade = valor End Set End Property End Class |
Partial
Public Class MinhaClasseParcial Private idade as Integer
Public
Sub calculaIdade(Integer idade) |
minhaClasse.Propriedades.vb | minhaClasse.Metodos.vb |
Acima temos a definição de uma partial class em dois arquivos físicos distintos:
Note que a palavra chave Partial somente é obrigatório a partir do segundo arquivo físico, pelo menos no VB.NET, já no C# ela é obrigatória também no primeiro arquivo.
Uma das vantagens em se utilizar as Partial Class é poder separar a lógica de negócio da interface de usuário em arquivos distintos facilitando a manutenção e o trabalho em equipe.
Algumas regras que devemos ter mente ao usar as classes parciais:
Podemos usar as classes parciais para separar a definição de classes, estruturas e interfaces;
Cada parte de uma classe parcial tem que estar disponível em tempo de compilação;
As classes parciais precisam usar o mesmo modificador de acesso. (Public Protected, Private, etc.)
Se qualquer parte de uma classe parcial for abstrata (mustInherit) então toda a classe será abstrata;
As partes podem especificar interfaces diferentes mas a classe como um todo implementa todas as interfaces;
As características definidas em qualquer parte estão disponíveis para todas as partes da classe;
O todo é soma de cada parte das classes parciais;
Os atributos se aplicam a todas as partes da classe.
Vejamos onde a plataforma .NET usa o conceito de partial Class.
Se você criar um novo site web usando o Visual Web Developer ou o Visual Studio 2005 é comparar o código dos arquivos Default.aspx e Default.aspx.vb irá notar que o código gerado pelo VWD está no primeiro arquivo sendo que o código referente ao arquivo Default.aspx.vb será o código que você irá implementar. Isto será feito usando uma Partial Class. Veja na figura abaixo:
Código do arquivo Default.aspx.vb implementado como uma Partial Class |
A seguir temos o código do arquivo Default.aspx gerado pelo VWD após a inclusão de uma caixa de texto no formulário.
<% @ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %><! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">< html xmlns="http://www.w3.org/1999/xhtml" >< head runat="server"> <title>Untitled Page</title></ head>< body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div> </form></ body></ html>
|
Cabe a você o bom senso em aplicar o recurso de forma a torná-lo útil quando realmente for preciso.
Até o próximo artigo VB.NET 2005.
José Carlos Macoratti