gpt4 book ai didi

delphi - 创建类集合的最佳方法

转载 作者:行者123 更新时间:2023-12-03 15:18:52 26 4
gpt4 key购买 nike

我正在尝试创建一些类,这些类允许我检索和操作我的应用程序将创建和管理的一组备份。

我提出了以下代码(尚未测试),但我不确定这是否是实现此目的的最佳方法,或者是否有任何更简单/更好的方法。我使用的是 Delphi 2010。

我有一个类来保存备份详细信息 (TBackupItem),然后我需要一个类来保存 TBackupItem 的集合,最后我将有一个类来管理备份的读取和写入,并公开一个访问 TBackupItem 集合的属性。

type
TBackupItem = class
private
FBackupProgram: string;
FBackupProgramVersion: string;
// There are more variables and properties but for the sake of simplicity I've listed only two
public
property BackupProgram: string read FBackupProgram write FBackupProgram;
property BackupProgramVersion: string read FBackupProgramVersion write FBackupProgramVersion;
end;

TBackupsList = class(???)
private
// This class will hold a list of TBackupItem. What should I use to accomplish this?
end;

TBackupsManager = class(TObject)
private
FBackups: TBackupsList;
public
property Backups: TBackupsList read FBackups write FBackups;
end;

你们对实现这一目标的最佳方式有什么评论和/或例子吗?

谢谢!

最佳答案

在 Delphi 2010 中,最好的方法是使用泛型。

使用它代替您的自定义类 TBackupsList :

TBackupsManager = class
private
FBackups: TObjectList<TBackupItem>;

(您必须包含 Generics.Collections )。

如果您的收藏需要进一步的方法,您可以保留TBackupsList并继承自 TObjectList<TBackupItem> :

TBackupsList = class(TObjectList<TBackupItem>)      
public
function MyAdditionalMethod: Integer;
end;

编辑:如果您想使用自定义 TBackupsList ,但不想拥有所有公共(public)方法 TObjectList已经,你不能使用继承。相反,你必须使用组合:

TBackupsList = class
private
FItems: TObjectList<TBackupItem>
public
//Duplicates of the original TObjectList public methods accessing FItems.
end;

关于delphi - 创建类集合的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663638/

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