gpt4 book ai didi

delphi - 整合多个类(class)的最佳实践

转载 作者:行者123 更新时间:2023-12-03 19:42:10 27 4
gpt4 key购买 nike

在下面的代码段中,我有两个具有完全相同的过程名称的类。这些过程中的代码有很大不同。是否可以将这些类合并以简化维护和将来的增强,还是我可以接受的方式进行处理?

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;

最佳答案

您可以在基类中将这些方法声明为虚拟的(并且可能是抽象的)方法,以便可以利用动态调度和多态性,但是除此之外,实际上没有其他任何要合并的东西。这些类共有的所有内容都已经在一个基类中。添加这些声明实际上将意味着您拥有更多代码,因为您仍然需要保留现有的方法声明和实现。

关于delphi - 整合多个类(class)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com