我有两个具有以下关系的模型对象。
A {
int id;
List<B> bList;
}
B {
int id;
int idA; // references a particular object A with associated id
}
类A具有类型B的对象的列表。问题是我不知道强制这种关系是否是一种好习惯。这可以确保B的id具有A的id。现在,我正在考虑让A对象返回一个生成器对象,该对象将构建将idA设置为当前实例的正确id的B对象。有没有好的做法?
编辑: 我忘记了一些细节。我考虑了更多,我意识到这不是我可能使用生成器的唯一原因。对象B还具有根据A的特定实例而变化的对象列表。因此,每个A对象本质上都有一个不同的B对象。我对设计模式的了解并不多,但告诉我使用上面所述的构建器模式。你们怎么看?
答案 0 :(得分:1)
我更喜欢使用PK FK约束在数据库级别执行此操作。 但是,如果您希望在代码上使用它们,我认为最接近的结构化模式就是复合模式。 我建议创建一个共享的A的可用对象的列表,并在B每次引用B的每个A时,为每个B的另一个A创建一个子列表,这使得在A不再存在时,很容易从B销毁(删除)引用。 另外,它可以确保您不添加不存在的A,并保持一致和一致的结构。
Public static List<Structure> mainList; // This must be updated whenever A created or instantiated by B
Class Structure{
Public A obj= new A();
Public List<B> referencesOfA=new ArrayList<B>();
}
A {
int id;
List<B> bList;
}
B {
int id;
int idA; // references a particular object A with associated id
}