大家能不能对MVC谈谈看法
MVC究竟怎么区分,我是越来越糊涂了
虽然这个概念跟具体的系统设计关系不算密切
(设计出来了具体的结构,也没有必要强调谁是Model,谁是View,谁是Controller)
我设计了一个信息管理系统
分成如下层次:
“模型”:使用JAVA BEAN的方式描述信息集合,但不实现对信息的持久化操作。
“视图”:基于Swing窗口。
“控制器”:
一.视图控制器
它主要包括两个部分,一个是表格模板,负责将表格的显示和修改同内部的行对象联系起来,这个控制器通过继承类AbstractTableModel来实现。另一个部分是表格内容修改插件,负责在表格相应栏目修改的时候提供用户可读的选项,并且有的插件有将系统内部的值同用户界面的显示作单向翻译的功能。选项有可能是固定的,也有可能是通过下层的模型控制器对数据库的访问得到的可变的选项。
二.模型控制器
1.表格标题组件
表格标题组件是保存并且可响应请求并返回表格的标题及相关属性。属性包括栏目所在的列的数据类型,和表格中不能够作修改的列。组件设计时抽象得到一个接口ColumnBuilder。所有表格标题组件都实现这个接口。
2.表格行组件
表格行组件是为上层组件提供读取和更改表格中的行的某个可改变元素的能力。设计时抽象得到接口RowTransformer。所有的表格行组件都实现这个接口。
3.表格数据操作组件
表格数据操作组件实现的功能稍微复杂一点,它有如下功能:
判断行数据是否合法
初始化表格行数据
更新数据库
向数据库插入新行
将数据库中的某一行删除
接受外部参数
组件设计时抽象得到一个接口DataOperator。所有的表格数据操作组件都实现这个接口。
三.中心控制器
中心控制器是系统的核心,它管理着系统的所有流程,所有的用户操作首先都传送到这里,由它决定将使用哪一组模型控制器
四.辅助控制器
辅助控制器的功能主要是字符串生成、缓冲池和信息转换等辅助功能,也可以说是工具箱。
已开始我就是这样将他们作的MVC分解
但是现在觉得这样有很大问题
1. "辅助控制器" == "工具箱"?
2. "表格数据操作组件" 是否应该归到“模型”里面去,因为它实现的是固有的持久化功能。
但是它对于系统其他部门来说不是透明的。
3. "表格行组件"、"表格标题组件"、“视图控制器”是否应该归入“视图”,因为“视图”的“模型”和“控制器”还是“视图”
4. 大家按MVC做的系统里面,控制器的成分究竟有多少?如果这个系统按上面说的重新划分MVC,控制器就只剩一个类了。
因为本人要进行答辩,所以这些理论问题,还是得搞清楚。
希望大家能帮忙
问题点数:0、回复次数:6Top
1 楼treeroot(旗鲁特)回复于 2005-06-03 10:40:45 得分 0
Swing就是一个MVC的实现Top
2 楼cfsego(陈传文)回复于 2005-06-04 15:19:00 得分 0
没有人对上面的系统的分法有自己的见解吗
还是希望各位能够指点一下
星期一别人就要问了Top
3 楼aChinese(一个中国人)回复于 2005-06-06 13:11:19 得分 0
Swing的MVC 其实只分了两层 , M 和 VC.
VC是在一起的, 因为象控件这种东西需要能View, 又能ContralTop
4 楼fenghui(及时结帖的人是光荣的)回复于 2005-06-10 09:48:10 得分 0
Front COntrolTop
5 楼wandou999(弯豆)回复于 2005-06-16 13:44:21 得分 0
感觉现在做的项目,都没按照mvc去做,相互参杂,很正常Top
6 楼vssivl(克斯)回复于 2005-06-29 21:49:12 得分 0
楼主的分法好怪啊。Top




