MVC模式

什么是MVC

大家都知道 MVC => Model - View - Controller

mvc

交互关系: Controller <- Model -> View | Controller <-> View

使用MVC有什么好处

MVC可以彻底的隔离View和Controller之间的关系, 在页面上通过标签或者模板引擎的方式与Controller交互,方便了设计者和开发者之间的协作

MVC如何运作

说到MVC,有两个模式不得不讲

Front Controller

 

意思是用户的请求转移到Handler,而后根据Client的请求信息创建特定的Command,而后执行

Command根据得到的结果,通过反射或者其他的形式绑定到页面上,这样就完成了数据的显示,当用户进行操作,也会产生对应的命令。最终反映到View上面。

对于.Net实现这样的方式需要在web.Config里<Handlers>配置节中加上对于用于请求的转向

然而对于URL的转向部分,我们可以事先在map.Config设置好转向的地址,而后再在Asp.Net本身进行Server.Transfer,这样实际地址和处理的地址就可以对应起来. 在Asp.Net MVC 中有了对应的Routing实现,根据他定义的规则,为我们省略了这一步,然而知道这个模式的存在对于我们理解原理还是很有帮助的.

关于FrontController在MSDN中有对应的实现: http://msdn.microsoft.com/en-us/library/ms998532.aspx

Observer

Observer中文名叫做观察者模式,所谓观察者意思是,有程序监控你的程序. 如何使用呢

看看类图:

Observer是组合 + 继承实现,在MVC中则用于Model和Controller之间进行消息传递

在.Net中有对应的实现: System.Delegate

补充:

PureMVC中,在View和Controller之间加入了Mediator模式(需求和实现可以同时变化),并在Model和Controller之间加入了Proxy模式(相当于一层防火墙的作用,访问Model层之间必须得经过Proxy),这样, 各个层之间的变化更加灵活。

参考:

MSDN MVC In Handler: http://msdn.microsoft.com/en-us/library/ms978723.aspx

PureMVC: http://puremvc.org/component/option,com_wrapper/Itemid,34/

posted on 2008-07-21 01:13 xwang 阅读(...) 评论(...) 编辑 收藏

导航

统计