Partial Class or Partial Type em Delphi .NET/Win32

Partial Class ou Partial Types foi introduzida no Visual Studio 2005. Este conceito nos ajuda a dividir nossa class em vários arquivos. Se escrevermos uma class em um único arquivo dependendo de seu tamanho, isso pode nos levar a um esforço enorme na sua manutenção e entendimento, por mais organizada que ela seja, então a solução é dividir em partes menores e cada parte em um arquivo diferente isso é Partial Class implementado no VS2005.

No Delphi nós também podemos criar uma Partial Class, apesar de não ter a mesma nomecratura, o conceito é o mesmo, dividir class em vários arquivos. Criando Partial Class, podemos ter uma class grande, bem organizada e de fácil entendimento e manutenção.

Partial Class em Delphi .NET/Win32

Usaremos para criar uma Partial Class em Delphi à palavra chave "helper". Com helper podemos dividir nossa class em vários arquivos como veremos no exemplo abaixo passo a passo:

  • Primeiro iremos criar nossa class principal.

unit Class_Principal;

interface

uses SysUtils, Classes, Dialogs;

type
   TClass_Principal = class 
   public
      { Public declarations }
      // Metodos
      class procedure Mensagem_Principal(Msn: string);
   end;

implementation

{ TClass_Principal }

class procedure TClass_Principal.Mensagem_Principal(Msn: string);
begin
   ShowMessage(Msn + Class Principal);
end;

end.

  • Segundo iremos criar nossa primeira Partial Class.

unit Class_PartialUm;

interface

uses SysUtils, Classes, Dialogs, Class_Principal;

type
   TClass_PartialUm = class helper TClass_Principal
   public
      { Public declarations }
      // Metodos
      class procedure Mensagem_PartialUm(Msn: string);
   end;

implementation

{ TClass_PartialUm }

class procedure TClass_PartialUm.Mensagem_PartialUm(Msn: string);
begin
   ShowMessage(Msn + Class Partial Um);
end;

end.

  • Terceiro iremos criar nossa segunda Partial Class.

unit Class_PartialDois;

interface

uses SysUtils, Classes, Dialogs, Class_Principal, Class_PartialUm;

type
   TClass_PartialDois = class helper (TClass_PartialUm) TClass_Principal
   public
      { Public declarations }
      // Metodos
      class procedure Mensagem_PartialDois(Msn: string);
   end;

implementation

{ TClass_PartialDois }

class procedure TClass_PartialDois.Mensagem_PartialDois(Msn: string);
begin
   ShowMessage(Msn + Class Partial Dois);
end;

end.

OBS: A palavra entre parênteses em destaque "TClass_PartialUm", informa que essa é a class ancestral de TClass_PartialDois, desta forma a class TClass_PartialDois consegue implementa a class TClass_Principal. Se formos criar outra unit com a class TClass_PartialTres basta informarmos que a ancestral dela é TClass_PartialDois e assim por diante.

  • Como usar ?

...
uses Class_Principal, Class_PartialUm, Class_PartialDois
...

procedure Form1.Button1Click(Sender: TObject);
begin
   TClass_Principal.MensagemDeErro(Delphi também faz);
   TClass_Principal.Mensagem_PartialUm(Delphi também faz);
   TClass_Principal.Mensagem_PartialDois(Delphi também faz);
end;
...

Observe que a class usada por nós, sempre foi TClass_Principal pois as outras são nada mais do que implementações feitas para dividirmos nosso código fonte para melhor entendimento e melhor manutenção.

Valeu Delphi. e façam bom proveito desse artigo.

Isaque Pinheiro

"O Homem está disposto a negar tudo aqui que não compeende."