DAL数据处理层分析

上一篇中对三层结构进行了整理,简要的说明了一下DAL、BLL、UI以及Model层。

下面详细对DAL层进行分析。

按照DAL数据处理层的说明,它包括了各种数据持久化的处理,包括数据库、本地文件、网络等等各种方式的数据持久化形式。显示中持久化方式非常灵活,有可能在各个不同的系统、业务、及部署实例都各不相同。要想系统能够适应这种灵活性就要考虑很多方面。

按照面相对象的系统设计方法。首先我们应该将功能整理起来形成接口。

因此DAL数据处理层应该有功能接口部分我们暂放在IDAL命名空间。我们以用户信息的持久化处理为例。首先得到以下接口

ok,上面的接口是用来存储和获取某用户的用户信息。那么,当BLL层涉及到这部分业务的时候只需要调用这个接口就可以了。我们分别于数据库、本地文件、网络三种方式实现了这个接口。

看下面的实现:

(1) 数据库实现

(2) 本地文件实现

(3) 网络实现以上类似。

现在的问题是接口有了,实现有了,我怎么去调用了?

在BLL层new一个本地实现的对象?或者new一个网络实现的对象?

显然不对,功能独立出来了却将调用功能弄成硬编码显然有悖面相对象。

那么,我们现在需要根据不同的需求创建实例。ok,回到设计模式的创建型模式了。有规可寻。

我们需要一个工厂来创建我们需要的类的实例。你只要拿出来你的需求,就可以根据你的需求返还给你类。

好吧,你的配置文件里有写哪个配网络、哪个配本地数据库、哪个配本地文件。

这样我们有如下的方法:

对,你的web.config是这样写的:

<add key="DAL" value="LocalFile"/>

 

这样子,我们可以再BLL层调用了,BLL层根本就不用管我是从哪里得到用户信息的。用户信息从哪里来对于BLL层是透明的,你配的是从本地文件来,那么它就是从本地文件的来的。

下面是调用时候的样子

IUserInfo ucontrol = DAL.Factory.DataAccess.CreateUserInfoInstance();

Model.UserInfo uinfo = ucontrol.GetUserInfoByID( uid );

uinfo.xx = xx;

uinfo.xxx = xxx;

ucontrol.SetUserInfo( uid, uinfo );

好了。一切都以做完,用户的要求满足了。

这就DAL层。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值