2011-12-13 48 views
0

我一直在做一些近期的OO设计。我也使用EF 4.1作为ORM。现在,当我设计我的课程和他们的联系时,我可以考虑两种方法。例如,一位老师教授一门课。因此,Teacher类可以将主题对象的引用作为属性(基于引用的方法),也可以将SubjectId作为属性(基于ID的方法)。我不确定应该采取哪种方法,为什么?我相信基于ID的方法更多的是关系数据方法,而基于参考的方法是真正的面向对象方法。但我不确定。OO设计方法 - 基于引用的方法或基于ID的方法

回答

0

如果您正在使用JPA,请选择基于引用的方式并使用延迟获取。

+0

谢谢。但你能帮我解释一下吗?那么为什么不是基于ID的方法? –

+0

Id的用途是什么?一般来说,你的老师教授的科目(作为对象)不是身份证。它更好地代表了面向对象的问题。即使您持有主题ID,您仍需手动进行额外处理(获取此ID,使用ID拉取条目等)。在懒惰读取的对象情况下,所有这些都是手动执行的。一个问题可能出现在序列化和使用远程延迟抓取。 – mishadoff