浏览了博客园的许多三层/多层设计文章,花了几天时间,自己动手写了个代码来实验这样设计的优缺点。希望在这个实验系列的过程中,能和朋友们一起学习,一起进步。
本文章系列是基于VS2008框架平台进行代码编写的,数据库会用到SQLServer2005 Express和Access2003。
设计的分层架构,层与层之间应该是松散耦合的。之所以这样做,是为了实现层与层之间的“可替换”式设计,例如,现在需要换一种方式实现数据访问层,只要这个实现遵循了前面定义的数据访问层接口,业务逻辑层和表示层不需要做任何改动,只需要改一下配置文件系统即可正常运行。
我们来看看本实验的框架描述:
1、界面层主要是系统的呈现,完成用户与系统的交互。本实验使用的是Web模式。从原则上来说,界面层也可以使用winform,但是由于在数据层使用了一些web的特殊环节,所以本实验是以web作为界面层来进行的。
2、业务逻辑层接受界面层发来命令,对业务进行判断处理,不关心数据的具体操作。
3、数据层接受业务逻辑层发来的针对数据的命令,对数据库进行操作。由于本实验要实现多数据库的操作,因此使用了工厂模式,利用反射根据web.config的设置来使用不同的数据库。本实验主要以大家常用的Access和SQLServer数据库作为对象。
4、实体层主要是系统涉及的对象实体的实现。实体和接口结合,对于数据的传递、及程序的优化带来的好处这里就不多说了,博客园里的不少高手已经论叙了很多。
5、公用层主要是系统涉及的一些通用操作,如加密、字符变换、缓存等等。
具体的程序设计框架如下:
下一节我将逐层进行实现说明。
注:为了突出多层、多数据的实验,我简化了系统的复杂性,仅仅使用了一个user对象、一个group对象来作为系统的具体对象。