三层与养猪,加入自己的理解

从此文中看出:DAL层不要放逻辑,逻辑是放在BLL层的,动软的简单三层里,BLL其实不是一层,因为他没逻辑,只是一个接口。BLL要尽量集中所有的逻辑,DAL要尽量集中所有的数据访问,这两个最难分开,DAL至多至少都会带一点点逻辑

浅谈三层架构 通过这个,+Java开发模式经验。终于相通了,动软到底是为什么这么做

一般的项目,涉及最多的就是对数据库的CRUD,DAL层只负责与数据库的交互,BLL层是最重要的一层,他负责将DAL层的的结果呈现给UI层,但是恰恰BLL层的存在似乎有点鸡肋,他起到的仅仅是转发DAL层数据的作用,而具体的逻辑操作是与数据库的交互,应该写在DAL层,这就好像BLL层是在重复DAL层的劳动一样,其实BLL层的作用在于除了调用DAL层访问数据库,还可以进行逻辑判断,当符合的时候,才进行允许进行DAL的操作,或者进行额外的操作(如加密,转换等)。而DAL层可不管这些,他只管进行CRUD的动作。UI层就是操作抽象出来的实体对象,它包含了各种属性。

在这里我说一下。简单三层的架构:WEB,BLL ,DAL做主框架。而MOdel 因为面向对象+每层都用。所以独立出来。和DAL并列。

解密,缓存,数据校验,因为是通用,也单独分离。放在Common类中。而,数据库访问类,因为数据库的多种多样,所以有一个 通用的数据库操作类。叫做DBUtility 独立出来,专门做 数据库访问的,(例如,反射后自动区分是访问EXCEL还是SQL),与Common并列。

DBUtility是对ADO.NET的封装,封装了一些常用的重复的数据库操作。 如微软的SQLHelper。cs  或动软的DBUtility/DbHelperSQL等,为DAL提供访问数据库的辅助工具类。

http://blog.csdn.net/mark4ever/article/details/6302353

1.数据库访问层(DAL)仅提供对数据库的CRUD操作,而不管操作后的结果,也不管逻辑过程(譬如同名用户,不合法用户名)。

2.业务逻辑层(BLL)不会直接与数据库交互,他与数据库的交互是通过DAL提供的方法。在调用这些方法前,要加入自己的逻辑判断或者业务处理。另外业务逻辑层(BLL)还有可能不会去调用DAL层的方法,而是进行其他业务处理。

 

3.用户界面层(UI)层是不会调用DAL层的,他只调用BLL层提供的方法,再由BLL层自己决定是否继续调用DAL层。

 

这个例子可以看出三层架构的优点就是结构清晰,容易扩展与维护。缺点就是,复杂。仅仅一个注册用户,就这么麻烦,所以对于小项目来说,费这么大劲换取一个相对较清晰的分层结构是不划算的。

 

三层,师姐把我点透了

其实MVC只有两层。MODEL从来就不是层

而三层。是把 数据库操纵的层(C) 改变。为 两层。BLL和DAL。所以成了3层。所以MVC不是三层。而三层之外也早已经独立了Model

所谓的本质   两层MVC  变  三层  其实是C变BLL+DAL   。

而核心 其实是DAL  。

在动软的三层中。  IDAL。 SQLServerDAL 。DALFactory.

IDAL.是一个接口。意义:用来封装。  意义不是很大。

DALFactory.是核心技术:Factory的名字不是白叫的。它就个工厂。  是利用抽象工厂模式,实现的,多个数据库的根据命名空间选择。SQLServerDAL 或者OracleServerDAL。

利用抽象工厂,就肯定利用反射技术。  利用此技术,使我们针对不同数据库的T-SQL语句的不同写法的 头疼,得到解决。不需要再去理解它是 怎么写的了。

 

 

 

posted on 2012-03-24 16:47  终于出名  阅读(613)  评论(1编辑  收藏  举报