当以面向对象思想设计学生类和班级类这两个实体类关系时,面临以下几种做法:
1、学生类中有个属性叫做“班级ID”;
2、班级类中有个属性叫做“学生列”,例如:C#语言为List<Student>
3、这两个实体类都不要关于对方的属性,而是在业务类中设计方法来讲两者关联起来。
请问,以上3中方法,哪一种是最符合OO思想的,原因是什么,遵循了OO的什么思想?其他两种又为什么不妥,违背了OO的什么思想?
我目前的做法是第2种,因为我认为现实中,班级是学生的容器,应该在班级中设置一个学生列属性。因为这个问题,昨天在部门里引起了极大的争议。请各位说说自己的观点吧~~
3
1
1啊,实体的独立性。
看使用情况吧
如果是学生使用的比较多,1比较好
如果是班级使用的比较多,2可以考虑吧
总体看还是1比较好
ps:DB是否设计好?
2.一对多关系,班级是对象,学生相当于属性,我觉得比较符合面向对象的定义!
1和2 都可以
六芒星的说法可以考虑,按业务去设计实体
其实有些自动化工具的映射结果就是同时满足了1和2,微软的EF就是这样的。2就是导航属性