当前位置:  技术问答>java相关

有关MVC(模型-视图-控制器)设计的讨论

    来源: 互联网  发布时间:2015-11-04

    本文导语:  现在看面向对象的书,讲到设计一般都会提到MVC分离的原则,可到具体的实现,各种编程工具举出来的例子往往不是那么回事,常常令人困惑,特在此抛砖引玉,希望大家说出自己的高见。为了把事情说清楚,篇幅有...

现在看面向对象的书,讲到设计一般都会提到MVC分离的原则,可到具体的实现,各种编程工具举出来的例子往往不是那么回事,常常令人困惑,特在此抛砖引玉,希望大家说出自己的高见。为了把事情说清楚,篇幅有点长,请大家耐心点。
举一个简单的例子,比如有一个雇员数据库管理系统,实现对雇员的雇佣、信息修改、退休或解聘的管理。
按照MVC的原则,先确定一个雇员类(Employee),它包括雇员号(emp_no)、姓名(name)、受雇时间(hire_date),部门号(dept_no)、电话(phone)、级别(job_grade)等属性,并通过employ(),modifyInfo(),retire()等方法来实现系统的功能。为了输入或显示雇员信息,定义一些界面类employFrame、modifyInfoFrame,retireFrame,在这些界面类中接受用户的请求后,分别调用Employee类的方法实现将输入的数据保存到数据库中或者显示雇员的信息。这些界面类不直接与数据库打交道,不直接执行SQL语句。具体的对数据库的操作也不在雇员类的方法中实现,而是专门定义一些数据管理的类,在雇员类的方法中调用数据管理类的方法实现数据库的存取。
在一些编程工具的例子则往往是先定义一些窗口,在窗口上放置直接访问数据库的对象,这些访问数据库的对象中包含操作数据库的SQL语句,通过这些对象实现对雇员信息的插入删除修改。象这样直接访问数据库的对象,具体的例子有Jbuilder中的JDBTable + DataSet,PowerBuilder中的数据窗口。
两相比较,无论在设计还是实现上,第二种方案当然简单快捷,但第二种方案业务逻辑划分不清楚,软件复用比较难。而第一种方案对设计水平要求比较高,实现起来也很麻烦,如果雇员类的属性比较多,为了将界面类中接收的数据传递给雇员类,雇员类的方法employ(),modifyInfo(),retire()的参数也会很多。另外数据管理类的设计也比较难。
在实际开发中,不知道大家采用那种方案,其理由是什么,请大家发表高见。
以上两种方案是我在学习面向对象设计后的一些初浅的认识,如果有不对的地方,也请大家指出来。

|
参考strut开发http://jakarta.apache.org/,

|
参数太多的话,可以用list或map来进行传递
设计模式本来就是需要有能力比较高的设计人员来
设定,然后交给水平低一些的程序员来具体实现,
通常来说,使用设计模式来进行设计,刚开始的
时候,所花的工夫是大于不采用设计模式的,如果
你的程序以后不是经常需要修改或升级的话,没有
必要采用,是否使用一项技术,不一定只看那项技术
是否先进,还要看是否和自己的具体情况吻合。

|
没有这个必要吧。如果我们把范围划大一点,Frame相当于view,数据库就相当于document;而管理类呢?就是SQL呀!就是一个统一的管理界面,只是没有单独区分出来而已。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • 求有关png图像处理的libpng库的有关中文资料
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 求教有关smartupload的问题,有关就给分!!
  • 有关KDevelop-3.0.4-0.1.i386.rpm的有关软件包
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 请教有关英文简历方面的词句!
  • 有关报表打印(在JAVA,WEB下应用)急用!
  • 请各位大哥告知JAVA中消息机制的有关资料,拜托!
  • 有关cocoon的问题??
  • 有关jbuilder
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 有关J2ME的帮助文档!
  • 100分求助 能不能提供一些有关图像分割的算法和实现代码!谢谢
  • 在哪里可以弄到有关tomcat配置方面的资料?
  • HTML教程 iis7站长之家
  • 有关swing的问题,请高手回答


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3