首页 新闻 会员 周边

三层架构中的业务逻辑层dll到底有什么作用呢

0
悬赏园豆:20 [已解决问题] 解决于 2012-12-25 17:45

比如DataSet ds = dal.GetList(1, "a.ASid='" + sid + "'", "id desc");跳过DLL层直接调用DAL,有什么缺点呢

acmzs的主页 acmzs | 初学一级 | 园豆:145
提问于:2012-12-14 14:19
< >
分享
最佳答案
1
收获园豆:20
Y2zz | 菜鸟二级 |园豆:393 | 2012-12-14 14:35
其他回答(6)
0

DAL只负责数据的存储、查询工作;

BLL 会使用一个到多个 DAL 来实现业务逻辑,这样就对上层屏蔽了 DAL ,而只要知道如何同 BLL 交互就行。

Launcher | 园豆:45045 (高人七级) | 2012-12-14 14:24

能举个bll使用多个DAL的例子吗,一般不就是一个dal对应一个dll吗,直接调用dal有什么不安全之类的吗

支持(0) 反对(0) acmzs | 园豆:145 (初学一级) | 2012-12-14 14:31
0

我感觉,DLL层是为了写逻辑代码用的,

现在好多人把逻辑代码全都写在了UI层,所以把DLL层空闲了下来,

所以感觉DLL层没什么用,可以用UI层直接调用DAL层,

只会造轮子 | 园豆:2274 (老鸟四级) | 2012-12-14 14:34

嗯,一直就是这样直接调用DAL层,现在还是不理解用bll有嘛用,感觉多余

支持(0) 反对(0) acmzs | 园豆:145 (初学一级) | 2012-12-14 14:36

@hfbz: 比如这么说吧,现在要做一个登陆功能,

UI层的任务是显示页面,以及与用户间的数据交互,

DAL层是操作数据库,这没什么好说的,

但是UI层拿到数据以后,DAL层去数据库里查看,

DLL层就负责比较用户名与密码,并且得出最后的结果,是否登陆成功,然后反回给UI层,再显示

所以流程应该是

UI层得到数据>DLL层告诉DAL层需要操作的数据>DAL层查询数据反回给DLL层>DLL层做出相应的业务逻辑判断,把结果反回给UI层>UI层显示信息

支持(0) 反对(0) 只会造轮子 | 园豆:2274 (老鸟四级) | 2012-12-14 14:47
0

dal层是对你要操作对象的封装处理(比如:news,login):将这两张表独立建类news.cs,login.cs;独立类中进行数据库操作处理,尽可能添加处理方法,减少修改,删除。符合开放封闭原则。作用:具体管理数据,降低耦合。

dll(业务逻辑层或问题领域层):是对业务的处理,如果小程序没必要,直接调用dal就行。数据程序大了,增加业务逻辑会减轻很多东西。作用;负责问题,业务抽象实现和功能实现。比如:你需要抽象类,要用工厂模式,适配器等,在UI层操作会很混乱,就用到dll了,还是非常重要的

备注:dal与ui层之间还有一个sI层(系统交互层),负责封装硬件的具体交互接口。这样就形成了四层架构了

伏草惟存 | 园豆:1420 (小虾三级) | 2012-12-14 17:34
0

分工问题, 不要BLL,你的逻辑将直接写在 UI里,将很混乱、臃肿。

Qlin | 园豆:2403 (老鸟四级) | 2012-12-14 17:44
0

你知道为什么么 ???

 

因为这样写可以随大流,因为这样写,大家不会认为你标新立意,因为这样子写,可以让刚进公司的人看了半天也不明白以前的人

写的代码究竟是什么意思…… 这样的话,可以凸显自己的能力有多高……

 

而且现在IT打哈哈的人太多了……这样子写,不管究竟有没有真正地解耦,不管真的有没有起来修改一处,不会牵扯万处的作用,不管这样子,是不是究竟地起来到作用^

需要格局 | 园豆:2145 (老鸟四级) | 2012-12-14 22:38
0

弱弱的问下,不是 叫 BLL 吗?

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-12-15 11:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册