不同层之间的对象关系

06-05-24 power1128
                   

我是一个java新手,最近用struts框架做一个行政审批的系统,在编码过程中,有很多疑惑,希望大家解答。

比如在持久层,有domain model和数据库的表对应,由DAO操作;在表现层,往往domain model并不够用,我是不是应该扩展domain model,建立新的view model,但往往对一个domain model会有很多的view model,这样会不会造成代码的混乱?

不知道我的表述是不是清楚,还望大家指教

                   

banq
2006-05-25 12:47

>往对一个domain model会有很多的view model,这样会不会造成代码的混乱

你这个问题非常典型,解决这个问题从两个方面下手:

1.了解Domain Model是如何产生的?它是从分析阶段产生的,它应该反映系统的原型。

2.如果发生矛盾,可能是Model提炼不够全面或细节。

3.界面可能由多个Model组合而成,但是一个表单绝对对应一个Modle

power1128
2006-05-25 13:30

>3.界面可能由多个Model组合而成,但是一个表单绝对对应一个Modle

谢谢banq的回答,不过对于您的第三条我不太理解,为什么一个表单绝对对应一个Model,比如在ActionForm里可能存在多个bean的List,这里的Model是个什么概念呢?

banq
2006-05-26 16:22

我这里指的表单不是用来显示的表达,而是用来提交的表单。一个html Form表单对应一个ActionForm,而一个ActionForm我一般对应一个Model。

显示表单时可灵活处理,例如使用Action--Jsp的串联等。

具体可能难以说清楚。

我已经在《模型驱动软件开发》一文中,画出Model高于表现层和持久层的图如下:

power1128
2006-05-26 18:33

谢谢banq兄,我又重新抽象了view model,问题基本解决了。正在拜读banq兄的文章

2Go 1 2 下一页