MVC模式
什么是MVC
大家都知道 MVC => Model - View - Controller
交互关系: 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/