Duvida com Herança de Classes

Delphi

08/10/2011

Boa tarde, estou fazendo um pequeno programa para renomear arquivos e tenho as seguintes classes:


// *****************************************************************************
// Classe TRenomear - Classe Modelo
// *****************************************************************************

type
  // Classe
  TRenomear = class
  public
    constructor Create; virtual; abstract;
  published
    procedure Executar(PListView: TListView); virtual; abstract;
  end;

  // *****************************************************************************
  // Classe TContador - Adiciona um contador ao nome do arquivo
  // *****************************************************************************
  TContador = class(TRenomear)
  private
    FNumeroInicial: integer;
    FTexto: string;
    FNomeOriginal: boolean;
  public
    constructor Create(PNumeroInicial: integer; PNomeOriginal: boolean; PTexto: string); overload;
  published
    procedure Executar(PListView: TListView); override;
  end;

implementation

// *****************************************************************************
// Classe TContador
// *****************************************************************************

constructor TContador.Create(PNumeroInicial: integer; PNomeOriginal: boolean; PTexto: string);
begin
  // Passando Parâmetros
  FNumeroInicial := PNumeroInicial;
  FTexto := PTexto;
  FNomeOriginal := PNomeOriginal;
end;

procedure TContador.Executar(PListView: TListView);
begin

  // Efetuar as alterações na ListView...

  inherited;
end;

end.


Estou separando cada operação a ser efetuada no nome do arquivo em uma classe separada, assim posso ter uma lista de ações a serem executadas em uma determinada ordem para renomear os arquivos.

Eu declarei a classe TRenomear como um classe base, ja que todos os objetos filhos teram o mesmo método para executar assim poderia chamar o método passando:


TRenomear(ObjectList[0]).executar;



Como vou usar um listview para visualizar as operações executadas, ele vai ser sempre o mesmo em todas as classes filhas, sendo que eu o declarei ele como um parâmetro do método Executar(). Haveria alguma outra solução, para que eu não precise informar a todos os objetos filhos a qual listview aplicar as alterações? E gostaria de saber se essa implementação está correta pois não tenho experiência com OO.

Desde já

Muito Obrigado
Walter Desidera

Walter Desidera

Curtidas 0
POSTAR