“peachykeen”选项可能是最佳选择,但是,如果您使用继承或子类化您的实体,另一个选项可能会对您有所帮助:
声明.h
// these classes doesn't have references to each others
public class FinantialBaseClass
{
// ...
}
public class CorporationBaseClass: FinantialBaseClass
{
// ...
}
public class MarketBaseClass: FinantialBaseClass
{
// ...
}
public class EquitiesBaseClass: FinantialBaseClass
{
// ...
}
金融应用程序.h
// these classes have references, but, to parent classes,
// not each others
public class CorporationClass: CorporationBaseClass
{
vector<EquitiesBaseClass> Equities;
}
public class MarketClass: MarketBaseClass
{
vector<EquitiesBaseClass> Equities;
}
public class EquitiesClass: EquitiesBaseClass
{
public CorporationBaseClass* Corporation;
public MarketBaseClass* Market;
}
public class MyFinantialAppClass
{
protected vector<CorporationBaseClass> Corporations;
protected vector<MarketBaseClass> Markets;
protected vector<EquitiesBaseClass> Equities;
public CorporationBaseClass* addCorporation() { ... }
public MarketBaseClass* addMarket() { ... }
public EquitiesBaseClass* addEquity(CorporationBaseClass, MarketBaseClass)
{ ... }
}
请注意,工作类中的每一个都作为“基类”,并且工作类相互引用基类,而不是类本身。这可以帮助您避免难以使用的循环/转发内容。
请注意,有一个应用程序。作为主类和关联类(“权益”)的容器的类。
检查“股权”类是否代表“市场”和“公司”之间的关联。该类不是“市场”和“公司”的一部分,而是“应用程序”的组成部分。如果你想添加任何类,你可以通过容器来完成,而不是添加到类本身的列表中。
另外请注意,还有一个额外的“金融根基类”,它可以帮助您处理与所有类共享的内容。