系统设计模式一

今天我要介绍的第一个模式,很多人应该都很熟悉,就是MVC。

在大师们的设计模式书籍中都有提及该模式。而我只是要总结一下,在系统设计中的应用。

MVC是Model/View/Control的缩写,指的是模型/视图/控制。

模型,通常我们指数据模型。

视图,我们指的是与用户的交互界面。

控制,我们指业务逻辑。

最经典的例子是MFC中的Document/View模型。该模型将业务逻辑混合在视图和模型之中,只是将视图与模型独立开。这样,你可以用折线图表示数据,也可以用表格表示数据,而不需要修改模型。这是我们在编程过程中对该模式最常使用的方式。

那么,我们还有别的使用方式吗?

答案是有的。

当我们把眼界从一个程序扩展到一个应用时,我们会发现MVC模式产生了一种魔法效应。让我们看看WinCVS、WinRAR这些应用。打开这些应用的文件夹,他们由几个应用程序组成,WinRAR,RAR,UnRAR。其中RAR、UnRAR就是模式中的MC。WinRAR就是模式中的View。用户在操作WinRAR压缩或解压缩文件的时候,实际是在调用RAR和UnRAR。你也可以直接使用RAR、UnRAR的命令行方式操作文件。

这种方式的好处在于,直接将开发者的关注焦点从繁琐的界面编程中解脱出来。把精力集中到真正的业务逻辑中去。并且使得交互界面逻辑独立、修改更方便。且不会影响业务核心。其实使用这种模式的不仅仅是小软件,如VC中的编译器与IDE系统的分离,也是该模式的经典例子。

让我们再把眼界放置到一个系统中。最为典型的莫过于Web系统。其首先是一个B/S模式(该模式后面应该还会专门提到),但它其实也是MVC模式。其服务器端的数据库正是MVC中的模型。而服务器端运行的PHP、JSP、ASP等脚本则是MVC中的控制。客户端的浏览器和页面就是MVC中的视图。在这个模型中,我和大多数人一样,都会有个误区,就是把视图中用于视图展现的逻辑归结为控制,如多级菜单的显示。其实这些都只是我们展现数据的方式,无论是用AJAX或者Frame框架或者别的什么花哨的技术,这些都只是数据展现的方式,而不是业务逻辑,所以它们都只是视图。在这里,我们使用MVC模式得到了分布式运算的好处。

其实在Vasta中,微软利用xaml和它的C#、VB更是把该模式发挥到了极致。有兴趣的,可以进一步研究一下。^_^!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值