BLL、DAL、IDAL、MODEL、DBUtility、DALFactory层级

三层架构,大家一般说的三层框架结构平日指的是:1、表现层(UI):便是展现给客商的分界面,无论是网址前台依旧应用程序界面;2、业务逻辑层(BLL):针对现实难题的逻辑操作;3、数据访谈层(DAL):对数据实行操作。其余的层级基本都以在那三层以上的填补。

UI(User
Interface)表示层:

正是我们看来的网址前台、应用程序界面。

BLL(Business Logic
Layer)业务逻辑层:

根本是针对性数据业务逻辑的管理。它的关切点首要聚集在业务准绳的成立、业务流程的落到实处等与事务要求有关的种类规划。它地处数据访谈层与表示层中间,起到了数据调换中承先启后的作用。对于表示层来讲它是被调用者,对于数据访谈层来讲它则是调用者。倘使说数据层是积木,那逻辑层便是对这个积木的搭建层。

DAL(Data Access
Layer)数据访谈层:

根本是对数码的操作并非数据库,具体为上层业务逻辑层提供数据服务。轻松地说正是写多少连接和推行的SQL语句来完成对实业也正是数据表的增、删、改、查的操作。进一步的话能够参与ORM的成分,那么就能够席卷对象和多少里面包车型地铁表mapping,以及对象尸体的长久化。

DAL中常用的本领有ADO.NET + SQL语句、O/R
Mapping框架 NHiberate、访谈不一样数额源时LINQ TO
(SQL、Oracle、XML)。

IDAL(Interface Data
Access Layer)DAL的接口层:

是DAL的接口层它反映了“抽象”的神气,或然说是“面向接口编制程序”的最棒呈现。在工厂设计形式中供给援助多数据源时面向接口编制程序的想想就有着展示。然后“IUserDAL
iUserDal = new
UserDAL();”。逻辑上我们能够如此清楚,那便是以为存在这么的关联:BLL->IDAL->DAL,以为IDAL起到了BLL和DAL之间的桥梁成效,BLL是由此IDAL作为接收器来接过分化的DAL的对象。实际上你那样编码:“IUserDAL
iUserDal =
ClassFacotry.CreateUserDAL();”,那么在试行“iUserDal.SelectUsers()”时,其实依然试行的UserDAL实例,而不是IUserDAL实例,所以IDAL在三层中的地点是与DAL平级的涉及。不过面向接口的研究就在此反映了。

MODEL这是实体/数据模型层:

一般来说Model层里面包车型地铁一个类对应数据Curry面包车型客车一张表,类里面包车型地铁每叁个属性对应表里面包车型客车每贰个字段,每种属性都有和煦的
GET 和 SET 方法,
项目中的数据存取都要依靠GET和SET方法来促成。它实在正是面向对象编制程序中最大旨的东西:类。确切的说它不属于纵向的哪一层,而是全部层都要用到的事情实体层。那样,Model在三层架构中的地方,和int,string等变量的地位就一律了,没有任何的指标,仅用于数据的积攒而已,只然则它存款和储蓄的是错综相连的数目。当您取多少时,假使利用DataSet,就从不呈现”面向对象”。相反,假如把DataSet里的行,产生Model层里的类对象。把DataSet造成List<>那样的集中,更面向对象,也更符合多层架构的宏图思想。(是指标的联谊,不是数据行的聚众)。或然利用泛型集结来替代DATASET。
IList<Model.实体类名>……

普通MODEL里面包车型地铁类,应该是和数据Curry面表相对应的。那样,你能够平素取表里面包车型大巴某部字段。通过这种艺术将MODEL的实体和数据库表映射类,封装数据库文件。

DBUtility:

是连接数库的办法。只是约定俗成的二个分类法,不是必得的。一般里面都放SqlHelper那样的类在里边,由DAL中的数据访谈类来调用。也正是说DBUtility包罗的是访谈数据库的通用代码。

DALFactory抽象工厂类:

作为成立DAL对象的厂子,并由此DataAccess类放到那几个抽象工厂里面去。对增加对IDAL项目标引用。在DataAccess类中,大家成立对象通过xml配置文件来将“规范外置”和“反射才能”实现。通过计划文件的次序集名,决定加载具体的万分DAL的程序集,动态结缘类名来动态创设DAL对象,并回到IDAL接口对象(面向接口编制程序,IDAL可接收SQLServerDAL和OracleDAL等分歧的贯彻),为了品质和使用方便,DataAccess类全部施用静态方法完毕。

总结:

粗粗思想是3层,从Model,DAL,BLL,然后她在各层上又利用了工厂形式,把逻辑与贯彻分离,比如原先BLL直接调用DAL就好了,但未来BLL却调用了IDAL,IDAL只是贰个接口层,里面封装了要变成的有的事情逻辑,而现实的贯彻则交由DAL去落到实处,然后借助于工厂方式DALFactory和反光能力动态加载程序集来实现IDAL层中类的实例化。那样不管大家底层用的是什么数据库都足以产生BLL对DAL的调用。首先你不该将那么些SQL语句放在BLL层中,而应当是由DAL层来成功和数据库的互相,DAL层又调用DBUtility的通用访谈数据库代码来贯彻对数据库的三番五次访谈。他们中间的涉嫌为DAL援用MODEL,
BLL援引 DAL 和 MODEL,UI引用BLL和MODEL。

相关文章