举我项目中的一个应用为例:UIL:
负责和用户交互的流程和窗口的控制,在这一层中要执行一些宏观的Insert,Update,Delete操作,这些操作通过调用BLL层的Insert,Update,Delete方法完成;
BLL:
以Insert为例,因为这里的插入操作并非对单表(假设A)Insert,还要对外键相关联的表(假设B,C)进行Insert,因此在BLL的Insert方法中,依次调用了DAL层中的A.Insert,B.Insert,C.Insert,相当于把对用户而言宏观的操作分解开来;
DAL:
将每个表(A,B,C)的Insert,Update,Delete操作单独写成方法,即每个表用一个实体类代表,每个实体类下面包含对于该表的Insert,Update,Delete方法。这样设计合理不?
负责和用户交互的流程和窗口的控制,在这一层中要执行一些宏观的Insert,Update,Delete操作,这些操作通过调用BLL层的Insert,Update,Delete方法完成;
BLL:
以Insert为例,因为这里的插入操作并非对单表(假设A)Insert,还要对外键相关联的表(假设B,C)进行Insert,因此在BLL的Insert方法中,依次调用了DAL层中的A.Insert,B.Insert,C.Insert,相当于把对用户而言宏观的操作分解开来;
DAL:
将每个表(A,B,C)的Insert,Update,Delete操作单独写成方法,即每个表用一个实体类代表,每个实体类下面包含对于该表的Insert,Update,Delete方法。这样设计合理不?
BLL:业务逻辑层,根据需求,进行业务逻辑的处理
业务层中不用connection.
在dal中声明一个属性来包装DbTransaction,
bll中得到.用事务的方法传同一个DbTransaction
UIL:关心用户体验,把点了那个按钮、写了什么文字推给业务。
BLL:关心功能,这些操作都是想作什么,用到哪些接口对谁进行访问。
DAL:关心数据的管理,给什么数据,数据存哪怎么存。
如梦的意思是具体的数据库操作就是SQLHelper 也就是petshop中的DBUtility那一层