使用MVC模型的几个常见误区

2016-02-19 18:41 7 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的使用MVC模型的几个常见误区,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - 编程语言 】

像名片、日程、任务、短信、文件浏览器和多媒体播放器等应用程序,都采用MVC模型作为其基本架构。但从这段时间的文档评审来看,我们对MVC模型的理解仍然存在一些误区。这里简单谈一谈,欢迎交流。 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

先说两句题外话,免得少数网友替我着急。他们会说,拜托,你写点新内容好不好,不要用MVC这类老掉牙的东西来充数。呵,很多人都热衷于新技术,我以前也一样。经过五六年的学习和实践后,让人遗憾的是,我没有发现什么真正的新技术。相反,倒是一些”老”技术充满魅力。包括像汇编语言、C/C++、awk/bash、计算机组成原理、操作系统原理、数据库原理、编译原理、数据结构、TCP/IP实现、面向对象、设计模式、POSA、代码重构、自动测试、人机交互,RUP/XP等比较通用的知识,也包括像linux、apache、xerces/xalan、GTK+/X/glib、STL/boost、MFC、COM/DCOM等这样特定平台/函数库。根据自己的经验来看,了解一项技术的基本内容并不难,难点在于灵活应用它们,在于适当的时候选择适当的技术。个人认为,把目前这些”老”技术掌握好了,无论是设计还是编程,完全可以做到游刃有余的境界(我还在努力中)。相反,整天只关注所谓的新技术,对一些经典技术反而只了解皮毛,可以说是捡了芝麻丢了西瓜,得不尝失。道不同不相与谋,热衷于新技术的朋友可以在此打住了。 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

好了,言归正传。下面是我在我们平台中发现的一些问题: 

1. 把控制器(Controller)和模型(Model)混在了一起。MVC模型的三大部分中的控制器(Controller)是最容易让人混淆的,在基于窗口的GUI应用程序中,控制器(Controller)一般就是控件的事件处理函数。控制器(Controller)有两个基本功能,一是把用户从界面上的操作(点击按钮)映射成模型(Model)对应的功能(如删除数据),二是把模型(Model)的变化更新到视图(View)上。控制器(Controller)和视图(View)的耦合比较紧密,尽管可以用策略模式来实现多个控制器(Controller)之间的切换,但那样做,实现复杂而且没有多少好处,所以很少有人去分离控制器(Controller)和视图(View)(据说WEB开发例外)。然而Glade把产生的事件处理函数放在callbacks.h/.c中,把产生的界面代码放在interface.h/.c中,这看似把界面与实现分离了,使得一些同事误以为callbacks.h/.c中的代码就是模型(Model),所以把控制器(Controller)和模型(Model)混一起了。结果是模型(Model)包含了一些控件,没有做到与界面的分离。

2. 所有界面与模型(Model)关联。有的界面是比较独立的,完全可以以一种调用关系来实现,结果也与模型(Model)挂了钩。这看似充分利用了模型(Model),实际上是把模型(Model)当成了全局变量的替代器。结果是一方面增加了界面与模型(Model)耦合,让这些独立的界面难以重用,同时也增加了模型(Model)复杂度。 

3. 认为一个应用程序只能有一个模型(Model)。大部分应用程序都只需要一个模型,但一些同事把这个现象这看成了定论。其实模型(Model)是一个逻辑上的概念,如果几个视图和另外几个视图毫无关联,最好各自使用独立的模型(Model)。否则把多个模型(Model)绞在一起,造成不必要的耦合,使用代码重用困难,也让增加模型(Model)的复杂度,使实现的难度增加。

4. 认为模型(Model)是一个不可再分的单元。在一些设计中,界面无关的实现代码的确与界面代码分开了,但它们都放在模型(Model)里,模型(Model)成了一个庞然大物。我们说了,模型(Model)只是一个逻辑上的概念,甚至完全可以没有模型(Model)这个名字出现,其架构仍然是基于MVC的。模型(Model)的责任一般要进一步划分,把责任分配多个更专业的类上。否则模型(Model)会过于复杂,使实现的难度增加。

~~end~~

来源:http://www.tulaoshi.com/n/20160219/1618660.html

延伸阅读
标签: 皮肤护理
问答 图钉提问: 皮肤还算是不错的,比较白的,但是上了25岁以后开始皮肤有些松弛,不化妆都不敢出门,护肤方法没变,是不是有什么错误的皮肤?懂得说说都有什么美容误区? 想得到帮助:美容误区都有些什么? 图老师解答: 你好,大部分人都是爱美的,每个人都有自己美容的小窍门的,但是有些是错误的,如果长期使用,不但起不到美容的效用...
标签: 跑步机 误区
1、不做热身 做任何运动之前一般都要先热热身,上跑步机之前也不例外。上跑步机前应先做热身活动,否则很容易造成大腿、小腿肌肉拉伤。压腿、下蹲、拉伸肌肉、屈伸关节等能提高肌肉的温度,使肌肉变得更加柔软。上跑步机后应从慢走、慢跑等“动态”热身开始,逐步加大运动量,此过程通常以10—15分钟为宜。此外,下跑步机时也应该...
标签: 丰胸
案例分析 图钉提问: 常见丰胸方法 ,天然丰胸的最强方法 图老师解答: 指导意见:       木瓜、牛奶都有助于胸部发育,木瓜加牛奶,丰胸效果更加倍。另外,青木瓜、地瓜叶和各种莴苣,也都是效果不错的丰胸蔬果。含卵磷脂的黄豆、花生等,含丰富蛋白质的杏仁、核桃、芝麻,都是良好丰胸食物。何况植物种子的...
标签: 生活常识
洗头常见的误区 在生活中很多人把洗头发都当做是一件很随意的事在做,通常在头发打湿后抹上洗发水抓挠几下头皮就冲洗了,尤其是很多女生经常在头发没干的情况下就去睡觉,须知这样对身体会有一定影响。洗头发也是一件需要多方面注意的小事,今天给大家说说洗头发的注意事项,让大家在生活中好避开误区。 不梳头直接洗容易伤及头...
标签: 皮肤护理
问答 图钉提问: 油性皮肤有痘痘有的很硬 想得到帮助:油性皮肤怎么保养 图老师解答: 病情分析:       据你的描述,脸上的主要问题还是一个痤疮的问题,即我们通俗所说的青春痘.本病的表现多种多样,有脓疱型的.粉刺型的,也有你这种丘疹型的.本病的发生原因很多,一般认为与内分泌.皮脂腺分泌旺盛.痤疮丙酸杆菌...

经验教程

524

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部