`
sptgreen
  • 浏览: 44575 次
  • 性别: Icon_minigender_1
  • 来自: 荆门
社区版块
存档分类
最新评论

三层架构基础

阅读更多
三层架构的一般理解:


三层是指:UIL表示层,BLL逻辑层,DAL数据操作层
首先是通过DAL数据操作层来跟数据库打交道,然后把数据返回到BLL逻辑层进行相应的逻辑处理
然后在UIL表示层现实出来,不过中间会使用带抽象工厂模式来处理连接数据库的问题,最后还会使用到
辅助层来处理NEW对象和属性。




SQL一般写在DAL层,通过数据库类实现调用。
在BLL通过接口调用DAL方法
Model,实现业务实体。
IDAL,实现接口。
SQLServerDAL,实现接口里的方法。
web.config里的配置信息,为SQLServerDAL的程序集。
DALFactory,返回程序集的指定类的实例。
BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。
WEB,调用BLL里的数据操作方法。 

业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
(IDAL)它体现了“抽象”的精神,或者说是“面向接口编程”的最佳体现。抽象的接口模块IDAL
(Model)实体和数据库表映射类
(Web)web网站项目



并不是每个系统都要分层,一般只针对一些大型系统才采用分层,你看PetShop4,总共有22个项目。
大体思想是3层,从Model,DAL,BLL,

然后他在各层上又采用了工厂模式,把逻辑与实现想分离,比如以前BLL直接调用DAL就好了,
但现在BLL却调用了IDAL,IDAL只是一个接口层,里面封状了要完成的一些业务逻辑,
而具体的实现则交给DAL去实现,
然后借助于工厂模式DALFactory和映射完成IDAL层中类的实例化。

这样不管我们用的底层用的是什么数据库都可以完成BLL对DAL的调用。
首先你不应该将那些SQL语句放在BLL层中,而应该是由DAL层来完成和数据库的交互。

要想研究分层模式,PetShop4的确是一个相当好的例子,值得学习。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics