正如题所说,本篇文章是MVC框架家庭版的诠释,也只是很泛泛的一个想法,只是让大家更方便理解MVC框架而已。当然还要满足一个必要的条件,那就是你已经结婚,并且生活了一段日子,就更能理解我讲的这些,哈哈,言归正传,我们开始进入主题。
在MVC框架的设计目标很明确,即把程序分为低耦合的三层:Model、View和Controller。这样的设计降低了模块间的耦合性,各模块如何结合在一起工作对于创建易扩展,易维护的应用程序是非常重要的。这就好比一个大家庭中成员一样,爸爸干什么,妈妈干什么,孩子干什么各有各的分工。
首先说Model,字面的意思是模型,它完成的是程序员编写程序应有的功能(实现算法等等)以及数据库专家进行数据管理和数据库设计(可以实现具体的功能)。其次是Controller,主要负责转发请求,对请求进行处理,将Model以合适的方式显示出来。最后是View,即界面设计人员进行图形界面的设计,它同时从属于Controller。可以看的出,如果我们开始使用MVC框架来设计程序时,就应该注意划分哪些是属于Model,哪些是属于Controller,哪些是属于View。尽管在最初构建MVC模式框架时会花费一定的工作量,但是从长远角度来看,它会大大提高后期软件的开发效率。
现在让我们来看一下,这三者之间的关系是怎样的。首先,我想举一个在家里例子来说明一下,比如我爸爸因为某些原因,要来我家住一段时间。假设有两件屋子,一间我们住,一间留给爸爸住,这么安排大家应该不会有什么疑问吧。再假设,如果我爸有什么事情想和我们说,他应该先找我说,然后我再和老婆商量,然后通过我再和我爸去沟通,我想一般家庭都是这样去做的吧。
再回到MVC框架,是这样描述三者关系的:
1、 Controller可以直接访问View 和 Model。
2、 View与Model不能直接访问Controller, 只能通过特殊的方式传递消息到Controller。
3、 Model与View之间不能访问。
可以看出Controller在其中起到了一个沟通协调的作用,这就好比我爸爸有什么事情要先找我,相反我老婆也一样。现在大家已经初步了解MVC框架中,这三者的关系,让我来进一步讲解MVC框架的中Controller的沟通协调是如何实现的。
首先是Controller与View:
1、Controller可以直接调用View里的所有public方法和属性。
2、View当中的控件通过事件(Event)与Controller产生关系。
3、Controller可以作为View的委托(delegate)响应View或View中控件状态变化时发出的事件
4、Controller中可以绑定属性到View。
再是Controller与Model:
1、 Controller中可以创建需要用到的Model实例。
2、 Controller可以任意访问Model实例中的属性、方法。
3、 Model通过自定义事件(Event)的方式与Controller进行沟通。Controller中需要事先加入对相应事件的监听。
以上就是我这些天通过学习MVC框架所给出的我的理解,一些泛泛的想法,并不是很专业,请大家指教,谢谢!
|