banq
2004-11-18 15:48

"围饶数据表再ood出其他对象"

这是典型的面向数据表设计,因为目前数据表是关系型的,所以,一开始使用数据表代表实体模型,而不是Domain Object,那么会产生Object-Relational Impedance Mismatch的问题。

Object-Relational Impedance Mismatch问题google中讨论很多。

当然,你可能觉得没有什么问题,但是有时对于复杂无法掌握的新项目,这个问题很多,上面一篇译文也说到,目前很多面向数据表设计阵营中人开始转向MDA,这其实也是一场革命。

进而我疑问:DBA将只是系统运营中的DBA,他如果不掌握面向对象OO分析方法,将会被淘汰。也就是极端地说:面向数据表设计的方法将会被MDA淘汰,当然这其中不免还有很多口舌和争论,我相信是趋势,早点改变早点好。

anonymous
2004-11-18 15:57

Object-Relational Impedance Mismatch

我也深感没有什么好技术,最好就是,数据库是面向对象的。但我看到目前一些所谓的匹配技术,还不如自己进行匹配好一些。主要是考虑到大部分程序员sql比较熟悉。

anonymous
2004-11-18 16:03

另外,我也看到过,使用域模型的,自己也使用了一段时间,但是虽然让面向对象的设计更彻底了,但是出现如此多的域模型,操作起来感到十分不便,所以我把他们进行了进一步的模糊化,有的地方我就直接用一些数组等集合来传递处理等,不知banq老师怎么看?谢谢。

banq
2004-11-18 16:19

>直接用一些数组等集合来传递处理

我个人感觉这个办法不是非常好,Struts中有动态Form是用来实现传递的,只有当系统复杂到一定程度,才推荐使用DTO。

另外数组我个人不推荐在J2EE中大量使用,它是一个微元素,在以对象为基本单位处理中,推荐使用Collection。

你说的程序员都熟悉SQL,所以习惯面向数据表分析,这种状况的出现为J2EE等新系统普及带来障碍,这也是一开始象EJB中实体Bean不为很多人接受的原因之一,但是Hibernate/JDO出现,更加会强迫他们转向MDA思维。

如果说设计模式是程序员面向对象必备的基础技能,但是大家有一个奇怪的体验,设计模式我都知道,为什么在我的实践中我很少用到?我的实践中基本都是数据库操作,好像从来用不到设计模式,怪圈就在这里,因为他们是面向数据表设计,而不是Domain Model,Domain Model表现为一个对象,一个普通的Java类,很显然,如果我们采取面向Domain Model之后,很容易就会使用设计模式,因为我们的研究领域都是对象啊。

anonymous
2004-11-18 17:31

当数据,从前向后传时我使用的Struts的form,当从后向前时,我喜欢,用“微元素”--引自banq,呵呵。我认为,Domain Model要恰当的使用,如果全用,非常彻底的用我没发现这样能够能提高实际的效率,若是,你不嫌麻烦,你可以使用。

11Go 上一页 1 2 3 4 5 6 ... 11 下一页