JiveJdon Community Forums
在线225人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 1 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
HRoger

发表文章: 5
注册时间: 2007年04月15日 09:29
给他发消息
webwork开发指南 是逻辑错误? 发表: 2007年12月02日 11:50 回复
刚看了夏昕的《webwork开发指南》不知道是我的逻辑有问题还是作者的有问题,大家帮忙想想,以下为引用“就笔者的观点而言。Model-Driven 对于维持软件结构清晰性的贡献,超过了其所带来的微不足道的复杂性。记得关于面向对象设计法则的著作《Object-Oriented Design Heuristics》4中有这样一个有趣的问题(可能与原文在文字细节上有所差异,一时找不到原书,只能凭回忆描述):
当你面对一头奶牛的时候,你会对它说“请给我挤一杯牛奶”。
还是对身边的农场工人说“请给我挤一杯牛奶”?
大多程序员对于这样的提问都会不屑一顾,愚蠢的问题,不是么?
不过在软件开发过程中,程序员们却常常不停的对着奶牛大喊“挤牛奶!挤牛奶!”。
回头看看这里的Property-Driven模式,是不是也有点这样的味道……
作为贯穿WebWork MVC的信息载体,Model扮演着奶牛的角色,它携带了我们所需要
的数据资源(牛奶)。而如何操作这些数据,却不是奶牛的任务,而是农场工人(Action)的工作。
如此一来,Property-Driven模式的身份似乎就有点混杂不清。
这也就是笔者所想要表达的意思,Webwork 出于框架灵活性的考虑,提供了
Property-Driven模式供用户选择,但作为用户的我们,还是需要有着一定取舍原则,这里,
笔者推荐将Model-Driven驱动模式作为WebWork开发的首选。"
我现在的问题是既然作者认为Model是扮演着奶牛的角色,那么他推荐使用Model-Driven驱动模式,那他岂不是也对是对着奶牛大喊“挤牛奶!挤牛奶!”。
大家说呢?
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:webwork开发指南 是逻辑错误? 发表: 2007年12月03日 10:51 回复
Model-Driven驱动模式也就是MDD 或 MDD甚至DDD 这是现在分层架构软件开发的主要方向。

webwork作为分层架构中一个之层表现层, 当然要遵循MDD这样大的方向。

>Model扮演着奶牛的角色,它携带了我们所需要的数据资源(牛奶)。
>而如何操作这些数据,却不是奶牛的任务,而是农场工人(Action)的工作
操作Model不应该是Action, Action是MVC中的Controller,是负责前后调度,Action需要依赖service来操作Model,不能越厨代庖,这是MDD基本概念。

我个人认为:表现层的模式就是MVC,表现层是为业务层服务的,而业务层才涉及到MDD等概念。所以,在表现层谈业务层概念,是让人混淆。webwork作为一个诞生在MDD之前的老表现层框架,尽管它借助strut2.0侵入Struts体内,但是它的腐朽气味已经散发,所以,就是webwork fans对它和现代MDD思想的解释也有些牵强附会。

是否将Model直接引入表现层?还是在表现层需要一个专门的界面对象?就是象Struts1.x中的ActionForm(是不是POJO是另外一个设计细节),但是,至少告诉我们界面对象并不和Model是同一个对象,虽然在简单小的应用,他们可以合二为一,但复杂项目就不是,因为界面对象可能包含一些与jsp显示有关的特别属性,而Model中包含的应该是业务属性,不能加入包含计算机概念的显示有关属性.所以,正式场合下是不能推荐将Model直接引入表现层使用的(尽管方便快),无论是Webwork/struts2.0/JSF

[该贴被banq于2007-12-03 11:16修改过]
[该贴被banq于2007-12-03 11:18修改过]
这个主题有 1 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam