我正在使用delphi 2009和VCL组件。我创建了一个名为
TStreets由商品TStreet组成,其中只有两个私有字段。现在我需要添加
到Tstreet类的另一个字段/属性来跟踪(通过使用引用)
TMyObject类的其他对象。
一个示例:假设TStreet集合包含五个元素和十个对象
(TMyObject)在运行时存在于我的应用程序中。 TMyObject的每个对象都可以属于
到一个TStreet,所以我需要为每个TStreet保存所有对象引用和
然后能够将一个或多个对象引用从一个TStreet移动到另一个。
我是否应该在TStreet下创建另一个保存对象引用的集合?
这是正确的方法吗?
最佳答案
鉴于以下。
TMyObject = class
...
end;
TStreet = class
...
public
property MyObject : TMyObject ...;
end;
TStreets = TList<TStreet>;
通过阅读您的问题,看来TMyObject只能绑定到一个TStreet。
然后,我建议反转参考。
TStreet = class;
TMyObject = class
protected
FStreet : TStreet;
public
property Street : TStreet read FStreet write FStreet;
end;
TMyObjectList = TList<TMyObject>;
TStreet = class
private
// Looks through MyObjectList returning correct
function GetMyObjecty : TMyObject; reference.
public
property MyObject : TMyObject read GetMyObject;
// Reference to list that contains all instance of TMyObjectList.
property MyObjectList : TMyObjectList;
end;
TStreets = TList<TStreet>;
TMyObjectList = TList<TMyObject>;