Delphi 整合多个类的最佳实践
在下面的代码片段中,我有两个具有完全相同的过程名称的类。这些程序中的代码有很大不同。是否有可能整合这些类以便于维护和将来的增强,或者我是否以一种可以接受的方式来实现这一点Delphi 整合多个类的最佳实践,delphi,delphi-xe4,Delphi,Delphi Xe4,在下面的代码片段中,我有两个具有完全相同的过程名称的类。这些程序中的代码有很大不同。是否有可能整合这些类以便于维护和将来的增强,或者我是否以一种可以接受的方式来实现这一点 type TMFRCore = class private FGridMain: TNextGrid; FGridSummary: TNextGrid; public constructor Create(Grid: TNextGrid; SummaryGrid: TNe
type
TMFRCore = class
private
FGridMain: TNextGrid;
FGridSummary: TNextGrid;
public
constructor Create(Grid: TNextGrid; SummaryGrid: TNextGrid);
destructor Destroy; override;
procedure SetRowColour(Grid: TNextGrid; Row: Integer; Color: TColor; Start: Integer = 0);
procedure OnSummaryDblClick(Sender: TObject);
function GetSectionId(Section: String): Integer;
property GridMain: TNextGrid read FGridMain write FGridMain;
property GridSummary: TNextGrid read FGridSummary write FGridSummary;
end;
type
TMFRDates = class(TMFRCore)
public
procedure UpdateSummary;
procedure UpdateMain(const sAircraft: string);
end;
type
TMFRHours = class(TMFRCore)
public
procedure UpdateSummary;
procedure UpdateMain(const sAircraft: string);
end;
我初始化这些类如下
procedure TfrmMain.FormCreate(Sender: TObject);
begin
MFRHours := TMFRHours.Create(gridHours, gridHoursSummary);
MFRDates := TMFRDates.Create(gridDates, gridDatesSummary);
end;
您可以在基类中将这些方法声明为虚拟的(可能是抽象的),这样您就可以利用动态分派和多态性,但是,除此之外,实际上没有任何东西需要整合。这些类所共有的一切都已经在一个基类中了。添加这些声明实际上意味着您有更多的代码,因为您仍然需要保留现有的方法声明和实现。谢谢您的回复。我想我会继续我要走的路。终于在德尔福取得了进展,我的道路为大众所接受,这很好:)