第三部分:MVCD模型
在上一节中,从一般的原则上介绍了两种Web应用模型,但是如何理解和把握这样的模型,将不同的Web技术正确应用到Web程序不同的功能模块中是一个非常实际的话题。下面就在实际编程中如何去掌握Web编程模型做一些分析。
1、两层客户/服务器模型
图11、两层客户/服务器模型
Web应用程序天生是一种客户/服务器应用程序,在ASP(Application Service Provider)逐渐成为Internet应用发展的一个重要方向的时候,使用哪一种编程模型来实现Web应用程序还处于探索之中。上面介绍的微软的DNA结构和Java编程结构就是人们在ASP(Application Service Provider)编程模型上进行探索的结果,但是由于这些技术出现比较新、掌握起来也有一些难度,所以许多编程人员采用了使用ASP或是JSP中嵌入“SQL”来实现数据存取和一些相关逻辑,如图11所示。
这样的编程模型有对一些小型系统比较合适,因为不需要太复杂的技术,技术人员比较好找,实现起来也比较快。但是,这种编程模型缺点还是比较明显的:维护困难、重用困难、大型系统中难以管理。
要解决该模型问题的关键是,将逻辑层抽象出来。但是,在以数据中心编程中,数据库不但提供基本的数据存取功能,而且与SQL丰富的表达能力一起提供强大的逻辑表达能力;再上节介绍的图9、图10所示两种模型掌握起来有一些难度,所以出现了该模型的一个改良版本,如图12所示。
图12、改良的客户/服务器模型
组成在该改良的模型中,为数据库中的主要的表都建立了一个类,JSP/ASP通过该类实现对数据库表的操作。这个模型一个方面实现了SQL语句封装,方便了程序的维护;另一个方面也提高了系统的重用性,即对Table类的重用。
但是,由于大多数数据库操作都是针对多数据表的操作,如果采用单表的方式来完成逻辑,未免有些浪费数据库与SQL的逻辑功能。另外,由于系统没有实现逻辑层的抽象,不能解决上面提高关键问题。
2、MVC模型的介绍
在传统的面向对象编程中,我们曾经接触过MVC模型,如图12所示。
图13、MVC模型