论坛首页 入门技术论坛

Struts不能完全用MVC来理解

浏览 8434 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-03-28  
action 内封装了
业务模型
form内存储了
业务模型的属性值

不剖开看的话....
也应该是model了

PS:struts是mvc2并非mvc
0 请登录后投票
   发表时间:2007-03-28  
阳光晒晒 写道
action 内封装了
业务模型
form内存储了
业务模型的属性值

不剖开看的话....
也应该是model了

PS:struts是mvc2并非mvc


也许我们口中的“model”不是一个东西。你能解释一下吗,举个例子?
0 请登录后投票
   发表时间:2007-03-28  
如果你不切开action的话
你怎么知道service层呢?
怎么知道model是怎么样子的呢?
一切都是在迷雾之后
被action+form所封装


每个动作作为一个方法
几个方法组成一个模型
模型的属性存在form中

不是非要向原点切的蛋糕才叫一块蛋糕,#切的也叫一块蛋糕
只要有分割规则就可以作为模型化分规则

例子:
有个飞机 模型
你所说的是
Airplane
属性:
人数 max_person
载重 max_heigh
所在地 airport
动作:
上飞机:load
飞行   fly
下飞机 unload


在我说的model
Action:
以下为方法名
load
fly
unload
init
........

form:
以下为属性名
max_person
max_heigh
airport
pageno
maxpage
.......

把action+form就是一个model了只是业务分离的不清楚.而已
0 请登录后投票
   发表时间:2007-03-28  
个人觉得没有必要分的很清楚,只要保证良好的扩展性和维护性即可~~~
0 请登录后投票
   发表时间:2007-03-29  
阳光晒晒 写道
如果你不切开action的话
你怎么知道service层呢?
怎么知道model是怎么样子的呢?
一切都是在迷雾之后
被action+form所封装

action是控制器的一部分,他肯定会依赖view。比如struts action,他会依赖HttpResponse, HttpRequest这些类型,他还要从request得到请求参数,把输出文字放到response里面去,物理的和逻辑的依赖都是存在的。如果你把model融合到action中,model和view就分不开了。

form就是页面上的表单,在一些情况下他的属性恰好业务对象的属性一样,但是他根本不能作为代替model。道理很简单,界面上的内容不一定正好对应后台的业务对象。比如我要在界面上显示一个客户和他的最大的一笔订单,在界面上这是一个表单,但是在model层应该是两个关联的类:Customer和Order。

model本身是就应该是清晰的,他可以独立的装配,独立进行测试。不需要action+form为他提供封装。
0 请登录后投票
   发表时间:2007-03-29  
lane_cn 写道
阳光晒晒 写道
如果你不切开action的话
你怎么知道service层呢?
怎么知道model是怎么样子的呢?
一切都是在迷雾之后
被action+form所封装

action是控制器的一部分,他肯定会依赖view。比如struts action,他会依赖HttpResponse, HttpRequest这些类型,他还要从request得到请求参数,把输出文字放到response里面去,物理的和逻辑的依赖都是存在的。如果你把model融合到action中,model和view就分不开了。

form就是页面上的表单,在一些情况下他的属性恰好业务对象的属性一样,但是他根本不能作为代替model。道理很简单,界面上的内容不一定正好对应后台的业务对象。比如我要在界面上显示一个客户和他的最大的一笔订单,在界面上这是一个表单,但是在model层应该是两个关联的类:Customer和Order。

model本身是就应该是清晰的,他可以独立的装配,独立进行测试。不需要action+form为他提供封装。
真的不需要么
那么把model
放在struts的哪里呢?

从struts的角度(页面美工角度来看的话)
他们看不到model
为什么只有可能是被封装了
0 请登录后投票
   发表时间:2007-03-29  
action调用model工作,再把工作的结果告诉view。struts框架规定了model的调用方式。

struts的框架里面没有model,任何通用的框架中都不可能有model,model永远要根据自己的业务去开发。

只有象SAP这样的特定领域框架才可能提供model,也只能是提供一个通用性的model,需要根据自己的需要进行扩展。

所有的框架都是为了加强业务对象的功能(比如ORM框架把业务对象自动保存到数据库里)、减少model对view的依赖(比如struts框架所干的事情)。如果不搞业务对象,大搞各种框架,本身就是奇怪的风格。在软件开发的历史上,是先有了model,然后为了解决model身上的问题,才出现各种框架的。
0 请登录后投票
   发表时间:2007-03-29  
这个帖子怎么被放到新手区来了,难道是大家都有很好的理解了吗?还是不屑一辩
0 请登录后投票
   发表时间:2007-03-29  
qinysong 写道
这个帖子怎么被放到新手区来了,难道是大家都有很好的理解了吗?还是不屑一辩
lz你题的太晚了
前年提正好但今年是ROR之年
不是ROR也得ajax
不是ajax也得是jsf
再再不行了也应该用struts2(webwork)
浮燥是流行....


to :lane_cn
引用

action调用model工作,再把工作的结果告诉view。struts框架规定了model的调用方式。

struts的框架里面没有model,任何通用的框架中都不可能有model,model永远要根据自己的业务去开发。

只有象SAP这样的特定领域框架才可能提供model,也只能是提供一个通用性的model,需要根据自己的需要进行扩展。

所有的框架都是为了加强业务对象的功能(比如ORM框架把业务对象自动保存到数据库里)、减少model对view的依赖(比如struts框架所干的事情)。如果不搞业务对象,大搞各种框架,本身就是奇怪的风格。在软件开发的历史上,是先有了model,然后为了解决model身上的问题,才出现各种框架的。


听你说了之后大开眼界
架构师是指model的架构
而非开发框架....
0 请登录后投票
   发表时间:2007-03-29  
阳光晒晒 写道
qinysong 写道
这个帖子怎么被放到新手区来了,难道是大家都有很好的理解了吗?还是不屑一辩
lz你题的太晚了
前年提正好但今年是ROR之年
不是ROR也得ajax
不是ajax也得是jsf
再再不行了也应该用struts2(webwork)
浮燥是流行....

呵呵。。有道理
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics