在 DLL 对象中编写一堆 2 个线性函数只是为了重新路由到 DAL 是不是值得?

Posted

技术标签:

【中文标题】在 DLL 对象中编写一堆 2 个线性函数只是为了重新路由到 DAL 是不是值得?【英文标题】:Is it worth it to write a bunch of 2 liner functions in BLL object just to re-route to DAL?在 DLL 对象中编写一堆 2 个线性函数只是为了重新路由到 DAL 是否值得? 【发布时间】:2010-09-21 08:15:02 【问题描述】:

这对我来说似乎很愚蠢。我没有得到什么?

【问题讨论】:

【参考方案1】:

我遇到过这样的情况,我的应用调用业务层来选择值列表。然后业务层调用 Dal 进行数据访问。在很多情况下,业务层方法没有明显的原因进行传递,但它确实为将来添加业务逻辑、数据处理等留下了空间。它还有助于保持您的应用解耦,这将使测试变得更加容易。

所以,我说保留一行,但如果您的插入、更新等仍然是一两行,您需要重新考虑在哪里进行验证和业务级数据处理。

【讨论】:

这个。如果您对编写软件很认真,那么对单元测试进行解耦很重要。【参考方案2】:

如果您的 BLL 从不进行验证或实现任何业务逻辑并且始终保持 2 行,那么是的,这很愚蠢。但是,如果您这样做,您可能错过了拥有业务逻辑层的意义,并且您可能一直在 UI 中进行验证,或者在 UI 或 DAL 中添加业务逻辑。很少有应用程序不需要验证并且没有业务逻辑。

【讨论】:

【参考方案3】:

虽然 Rob 和 Bullines 通常认为这样做的需要指向更深层次的问题是正确的,但在某些合理的情况下,直接进入数据访问层是非常有意义的。编写一个无脑方法(或更糟糕的是,整个对象模型)来包装数据访问层是任何程序员都可以做的最没用的事情,所以不要这样做。如果有正当理由,您可以对不通过业务逻辑层感到满意。

【讨论】:

虽然我有点同意你的观点,但如果你这样做了,然后需要稍后引入业务逻辑,那么它会变得更难做,因为你需要将应用程序代码中的每个实例都改回使用BLL。如果你一开始就花时间,你只需要修改 BLL 方法。 同样,如果您的数据发生变化,您可以花时间更新和维护一个不做任何事情的对象模型。因此,任何一种方法都可能在未来浪费您的时间。我认为有时采用一种方法,有时采用另一种方法。【参考方案4】:

业务逻辑应该在您的 BLL 中。如果您最终在 BLL 中使用“2 个线性函数”,您是否不小心将该业务逻辑放入您的 DAL 或 UI 中?

【讨论】:

以上是关于在 DLL 对象中编写一堆 2 个线性函数只是为了重新路由到 DAL 是不是值得?的主要内容,如果未能解决你的问题,请参考以下文章

怎样在delphi中编写一个dll实现串口通讯

如何从 C 代码正确创建 DLL 并在 C++ 项目中使用它

什么是动态链接库

从 C# 中的 C++ 代码中获取对象功能

面向对象--类库委托is和as运算符泛型集合

面向对象--类库委托is和as运算符泛型集合