Data access layer 在BLL对象中编写一组2个线性函数只是为了重新路由到DAL,值得吗?

Data access layer 在BLL对象中编写一组2个线性函数只是为了重新路由到DAL,值得吗?,data-access-layer,bll,Data Access Layer,Bll,我觉得这很傻。我还不知道什么?业务逻辑应该在您的BLL中。如果您的BLL中有“两个线性函数”,您是否意外地将该业务逻辑放在了DAL或UI中?如果您的BLL从不进行验证或实现任何业务逻辑,并且始终保持两个线性函数,那么是的,这是非常愚蠢的。如果您这样做,您可能已经错过了拥有业务逻辑层的要点,并且您可能已经在UI中进行了验证,或者在UI或DAL中添加了业务逻辑。很少有应用程序不需要验证,也没有业务逻辑。虽然Rob和Bullines认为这样做的必要性指向了一个更深层次的问题,但在一些合法的情况下,直接

我觉得这很傻。我还不知道什么?

业务逻辑应该在您的BLL中。如果您的BLL中有“两个线性函数”,您是否意外地将该业务逻辑放在了DAL或UI中?

如果您的BLL从不进行验证或实现任何业务逻辑,并且始终保持两个线性函数,那么是的,这是非常愚蠢的。如果您这样做,您可能已经错过了拥有业务逻辑层的要点,并且您可能已经在UI中进行了验证,或者在UI或DAL中添加了业务逻辑。很少有应用程序不需要验证,也没有业务逻辑。

虽然Rob和Bullines认为这样做的必要性指向了一个更深层次的问题,但在一些合法的情况下,直接进入数据访问层是非常有意义的。编写一个无脑的方法(或者更糟糕的是,整个对象模型)来包装数据访问层是任何程序员都能做的最不有用的事情之一,所以不要这样做。如果有合理的理由,你可以不通过业务逻辑层。我遇到过这样的情况,我的应用程序调用业务层来选择一个值列表。然后,业务层调用Dal进行数据访问。在很多这样的情况下,没有明显的理由让业务层方法进行传递,但它确实为将来添加业务逻辑、数据处理等留出了空间。它还有助于保持应用程序的解耦,这将使测试更加容易


因此,我建议保留一行,但如果插入、更新等仍然是一行或两行,则需要重新考虑在哪里进行验证和业务级数据处理。

这一点。如果你对编写软件很认真的话,单元测试中的解耦是很重要的。虽然我有点同意你的观点,但是如果你这样做了,那么以后需要引入业务逻辑,这会让你很难做到,因为你需要将应用程序代码中的每个实例都改回使用BLL。如果你一开始就花了时间,你只需要修改BLL方法。同样,如果你的数据发生了变化,你可以花时间更新和维护一个什么都不做的对象模型。因此,任何一种方法都可能在将来浪费您的时间。我认为一种方法有时适用,另一种方法有时适用。