这是德尔福的设计问题。
对象 A 包含一组变量,同时存储类型 B 的对象列表。类型 B 的对象需要访问容器对象 A 中的公共(public)变量。一个选项是对象 B 持有对容器对象 A 但这似乎导致将对 A 的引用存储为 TObject 并每次都对对象 A 进行封装以访问变量。还有其他可能的设计解决方案吗?
Object B
// Possible solution
ref to Object A
Object A
x : integer
list of B
每个 B 都需要访问 x
最佳答案
您需要一个前向类型声明:
type
TContainer = class; // forward declaration
TItem = class
private
FContainer: TContainer;
....
end;
TContainer = class
private
// list of items
end;
前向声明可以是容器或项目,哪个并不重要。
在文档中阅读所有相关信息:http://docwiki.embarcadero.com/RADStudio/en/Classes_and_Objects#Forward_Declarations_and_Mutually_Dependent_Classes
关于delphi - 列表中的对象需要访问父列表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474503/