所谓三层架构
是在客户端与数据库之间加入了一个
中间层
也叫组件层
这里所说的三层体系
不是指物理上的三层
不是简单地放置三台机器就是三层体系结构
也不仅仅有B/S应用才是三层体系结构
三层是指逻辑上的三层
即使这三个层放置到一台机器上
在项目开发的过程中有时把整个项目分为三层架构其中包括表示层(UI)业务逻辑层(BLL)和数据访问层(DAL)三层的作用分别如下表示层为用户提供交互操作界面这一点不论是对于Web还是WinForm都是如此就是用户界面操作我们网站展示给用户看的界面
业务逻辑层负责关键业务的处理和数据的传递复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理根据传入的值返回用户想得到的值或者处理相关的逻辑
数据访问层见名知意负责数据库数据的访问主要为业务逻辑层提供数据根据传入的值来操作数据库增删改或者其它
以下我简单介绍下一个用户管理模块:
为了整个项目的开发方便我们在项目中会建几个类库SQLHelperBLLDALModel和一个Web网站为了命名清晰我们可以这样命名这个三个工程(即在解决方案里添加的类库):
业务逻辑层(BusinessLogicLayer)BLL命名空间默认设置为BLL
数据访问层(DataAccessLayer):DAL命名空间默认设置为DAL
SQL帮助类SQLHelper命名空间默认设置为SQLHelper
另外我们为了数据传递的方便通常再添加一个类库这个类库是贯穿于整个三层架构中的即实体类通常命名为Model命名空间默认值设置为Models其中封装的每个类都对应一个实体通常就是数据库中的一个表如数据库中的用户表(custom)封装为(custom)将表中的每个字段都封装成共有的属性
这样三层架构的搭建就基本完成了这三层有着非常强的依赖关系
表示层 ← 业务逻辑层 ← 数据访问层
他们之间的数据传递是双向的并且通常借助实体类传递数据
那么三层架构都有哪些优点呢
易于项目的修改和维护在项目的开发过程中或者开发后的升级过程中甚至在项目的移植过程中这种三层架构是非常方便的比如项目从Web移植到Form我们只需要将表示层重新做一遍就可以了其余两层不用改动只需添加到现有项目就可以了如果不采用这种架构只是将代码写到表示层那么所有的编码几乎都要重新来了
易于扩展在功能的扩展上同样如此如有功能的添加只需把原有的类库添加方法就可了
易于代码的重用这一点就不用解释了
易于分工协作开
还可以加个接口类库Iinterface 加入设计模式使你的代码灵活性更好质量更高
其实当我们做一个项目时我们应该先考虑一下这个项目是不是应该应用三层/多层设计时 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了 完全没必要作的这么复杂 而多层结构 是用于解决真正复杂的项目需求的