|
|
|
关于对象颗粒大小的问题。
|
2004年05月18日 16:50
|
|
|
标签列表
对象设计(46)
封装(3)
|
|
数据库的结构是这样,有employee和dept这样两个表。 table: employee 他有id,deptid,name这样一些字段(deptid为dept表的id) table:dept id,name。 我现在是多层开发,在web层想得到这样的数据形式 职员名 部门名 xxx xxxx
现在问题是,数据层有employee和dept两个类。而且employee类里只有deptid这样一个属性,我虽然可以往过数据层提供的提供部门id得到部门名这样的方法,但我觉得如果是得到一个职员的话还可以,如果是得到一个列表的话,那么这样数据库操作就太多了。 我只是举了一个简单的例子,实际上employee上还有别的一个类似于deptid的成员,大家帮我出个主意吧,谢谢!
|
|
|
|
|
|
Re: 关于对象颗粒大小的问题。
|
2004年05月21日 09:11
|
|
|
|
当然在employee类中将dept作为属性,而不是deptid
|
|
|
|
|
|
Re: 关于对象颗粒大小的问题。
|
2004年05月27日 11:19
|
|
|
在数据库表设计中,毫无疑问是利用 id 来关联,如果采用CMP,那么这是个 很简单的1*n关系,用CMP很容易做,在某个Session Facade中 用类似dep.getEmployees 和 emp.getDepartment 来访问. 当然,如果只是需要一个上述的简单列表,完全可以在Session Facade中,直接利用DAO实现,如果用cmp,有点"高射炮打蚊子"的味道.
|
|
|
|
|
|
Re: 关于对象颗粒大小的问题。
|
2004年05月27日 14:57
|
|
|
|
Employee类中还是以deptId作为属性,但是可以提供getDpet方法,让该方法进行懒装载。另外,应该对Dept进行cache。
|
|
|
|
|
|
Re: 关于对象颗粒大小的问题。
|
2004年05月28日 16:11
|
|
|
|
两数据表联查不就出来了么,把dept放到HashMap里面也好啊,能有几个dept?
|
|
|
|