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

最近看一些mvc的文章 有许多迷惑不解处 看到了一篇文章写的不错 特转贴 欢迎大家讨论

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

    本文导语:  如何合理设计MVC模块? -------------------------------------------------------------------------------- model-view-controller是结构是那样的优雅,真的有些把我迷住了,不过,倾心管倾心,疑问管疑问,对于我刚刚接触这个结构的人来说...

如何合理设计MVC模块?

--------------------------------------------------------------------------------
model-view-controller是结构是那样的优雅,真的有些把我迷住了,不过,倾心管倾心,疑问管疑问,对于我刚刚接触这个结构的人来说,要它在实现中真正使用还要有许多细节需要了解,比如:
1、大块头的应用大掘三块以后,它们之间还是有紧密的关系,如何在MVC中真正减弱它们的关系呢?我输入一堆信息,这堆信息在输入后应该有一个数据结构来存放,Controller仅仅是把这个结构送给model处理呢?还是自己直接对它分析?如果是直接把数据做成包,送给Model,那么,当屏幕设计涉及到数据结构的变化时,这个改动就通过变动后的参数包波及到Model,这样,这种形式上的逻辑与界面分离不是有些过分了,因为Controller和Model的关系本质上并没有解耦,设计更改过程还要在两处奔波。在第二种情况下,Controller自己直接处理用户输入的数据,把必要的数据按Controller-Model接口要求的格式重新组装,与Model交互,返回业务约束处理后的结果,再作下一步打算,要是这样,我认为Controller的职责变得有些模糊不清,因为它承担了MVC概念中Model职责的一部分业务规则验证工作,就是不承担,它也必须了解业务逻辑的输入数据结构。以便于把输入数据重新组合,这种了解出现二个问题,一是与Model的解耦不彻底,二是Controller所承担的前期的部分业务规则,它的限度在那里,如何确定。
2、上述类似的问题存在View-Model之间。
3、把Controller和View分开的思想,我认为是人类洞察问题能力真正体现。但现在对于我来说,这仅仅是一种感觉而已,还有许多实现的环节没有理解。首先,我想问,View和Controller是否共享屏幕数据结构?这种共享对两者很难从实现在真正分开,是“唇齿相依”。划分它们,我想应该是出于一种设计概念上考虑,更多的是使我们在设计是有更好地对功能划分,并有适当的依据而已。硬把它们做成独自的模块我想在有些时候是得不偿失的。现在许多界面设计工具都把事件和控件紧紧地系在一起,我们应该是出于这个原因。其次,View中存在着与事件相关的知识,我们在Controller中接收事件,但Controller必须需要View的知识(类似于使用Model中的业务逻辑一样),获取事件中的含义,以及动作的目标,从而领会用户的意图,控制程序的流程,它们是如此的紧密结合,以致于诱惑我们让View来做输入这个事情。
上面三方面问题,使模块分离的独立性,自解释,弱耦合的原则得不到真正体现。并可能出现更多的问题,我倒底在什么地方没有真正理解MVC的真髓呢?哪位专家能点明。谢谢。

转自: http://www.umlchina.com/best/g16/g920.htm

|
to jokerjava(冷血)
要理解MVC,还是结合实际例子来吧,推荐好文一篇:
http://www.code-labs.com/article/articleinfo.php?id=576

|
MVC只是一种设计框架,并无一定准则可以遵循,应视具体情况而定.
在这种设计中要注意模块分层.对复杂的系统不一定说是只有三块.通过模块的划分解耦.
Java的Swing组件就是按MVC结构设计的,但正如上文所言的情况,使它无法严格的按MVC区分,因此最终被设计成为M-UI结构,在这个例子中,就是将V和C设计成耦合较高的UI,这种设计并没有限制MVC的灵活,反而使其扩展更方便,使扩展组件的人更了解VC的约束关系,因而可以设计出不同风格的组件.

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












  • 相关文章推荐
  • ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedList.Mvc)
  • MVC核心框架 MVC_CORE 0.0.2
  • MVC 5 第一章 创建MVC 5 web应用程序
  • MVC框架 JavaScriptMVC
  • Java的MVC框架 Maverick
  • MVC框架 dingframework
  • MVC 5 第二章 MVC5应用程序项目结构
  • Mac's MVC 框架
  • 哪里有MVC方面的资料??最好是中文的.谢谢.
  • 简易MVC框架 Lanp
  • 后台快速开发框架 struts2-mvc-template
  • PHP的MVC框架 ApPHP
  • ash.MVC
  • PHP5的MVC框架 TMPHP
  • PHP5的MVC框架 Agavi
  • 编程语言 iis7站长之家
  • php.MVC
  • Node.js 的MVC框架 Locomotive JS
  • Node.js 的MVC框架 total.js
  • Javascript mvc框架 jsmvc


  • 站内导航:


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

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

    浙ICP备11055608号-3