(转)三层架构各层关系分析比较及其约定
为达高性能,网站使用了三层架构;以下是一些个人编写的内部教育训练资料;供参考。
GUI:表现层,BLL:业务逻辑层,DAL:数据访问层
GUI:表现层,BLL:业务逻辑层,DAL:数据访问层
三+层架构各层关系分析比较及其约定 | ||||||
层 |
GUI |
BLL |
DAL |
数据库 |
备注 |
|
分析项目 |
界面<->GUI |
GUI<->BLL |
BLL<->DAL |
DAL<->数据库 |
||
信息传递方法 | 方法 |
|
● |
● |
||
属性 |
● |
● |
||||
字段 |
|
● |
● |
|||
事件 |
● |
● |
● |
|
||
委托 |
● |
● |
||||
ADO.net封装 |
● |
|||||
数据传递方式 | 事件参数 |
● |
● |
● |
||
类级别的变量、对象 |
● |
● |
● |
|||
静态类(全局对象) |
● |
● |
● |
|||
方法参数 |
|
● |
● |
|||
变量、对象 |
|
● |
● |
|||
SQL语句 | 不能使用,只能通过对象等传递 |
● |
流程相关的全部放在BLL,非流程相关的放入存储过程 | |||
储存过程 |
● |
|||||
DataSet |
● |
● |
● |
● |
||
DataReader | 不能使用 |
● |
● |
|||
数据流方向 |
读取 |
● |
● |
● |
● |
|
写入 |
|
● |
● |
● |
||
执行方式 | 同步 | 默认 | 如同步方法/异步方法,同步执行/异步执行 | |||
异步 | 可选 | 可选 | ||||
单线程 | 默认 | |||||
多线程 | 可选 | 可选 | 可选 | |||
操作触发源 | R |
● |
● |
● |
注意:数据访问层不能作为CURD的触发源;数据库的存储过程、触发器可以作触发源 | |
C |
● |
● |
● |
|||
U |
● |
● |
● |
|||
D |
● |
● |
● |
|||
异常处理 | 显示友好信息,未处理全部由全局异常处理方法捕获 | 处理和记录,重定义后昌泡 | 直接昌泡(不处理)或重定义后昌泡 | 返回异常代码和记录 | 针对层而言 | |
●:表示“使用” | ||||||
特别约定: | ||||||
1、不能直接访问表,应通过视图 | ||||||
2、不能从DAL层通过SQL语句访问视图,应通过存储过程 | ||||||
3、流程相关的全部放在BLL,非流程相关的放入存储过程 |