【问题标题】:How to use bll, dal and model?bll、dal和model怎么用?
【发布时间】:2011-01-23 14:20:27
【问题描述】:

在我的公司中,我必须使用 Bll、Dal 和模型层来创建带有数据库的应用程序。

我在学校了解到每个数据库表都应该是我模型中的一个对象。所以我创建了我的数据库的整个模型。 我还了解到,对于每个表(或模型对象),都应该在 DAL 中创建一个 DAO。所以我这样做是为了。

现在我被 BLL 课程困住了。我可以为每个 DAO/ModelObject 编写一个 BLLclass,或者我可以编写一个结合一些(逻辑)DAO 的 BLLclass... 或者我可以只写一个 Bllclass 来管理一切。 (这最后一个我敢肯定它不是最好的方法..)

处理这个 Bll“问题”的最佳做法是什么?

还有第二个问题。如果一个 bll 需要它不负责的其他表中的表内容,那么获取内容的最佳方法是什么?去问负责的 BLL 还是直接去 DAO?

在过去的 2 个月里,我一直在为这些问题苦苦挣扎,我不知道最好的解决方法是什么。

【问题讨论】:

    标签: model data-access-layer bll


    【解决方案1】:

    我在学校了解到,每 databasetable 应该是一个对象 我的模型。

    所以你没有学习面向对象?遗产?将多种对象类型映射到一张表?只有简单的“愚蠢”每张桌子都是一个对象?映射对象有更多合乎逻辑的方法。所有这些都有各自不同的优点和缺点(即您根据情况选择它们,其中每个对象中的字段数)。

    我还了解到,对于每张桌子 (或模型对象)应该有一个 DAO 创建到 DAL 中。

    去学校,要求退钱——他们是白痴。生成的 DAO 一开始就不好。每个对象都有一个会变得更糟。配置胜过代码——一个通用的 DAO 可以处理 x 个不同的对象,具体取决于配置。要测试和加载的代码要少得多。这就是适当的框架如何做到这一点(如 Hibernate/NHibernate)。您可以轻松编写一个 DAL,它在操作期间公开了大约六种方法并处理无限数量的对象。在开始时,您告诉每个 DAL 它必须处理哪个对象以及如何处理,以便它可以生成正确的 SQL 等。

    处理的最佳做法是什么 这个Bll'问题'?

    回到学校,学习基础知识。阅读 O/R 映射器。 Hibernate / NHibernate(你不命名你使用的语言),Toplink 等。

    如果 bll 需要表格内容 从它不在的另一张桌子上 负责,什么是最好的方法 获取内容?去问问 负责BLL或直接去 道?

    取决于架构。通常,业务对象来自工厂,并且应该只与工厂对话。然后,工厂将处理 DAL - 在执行缓存等真正有趣的事情之后和之前。

    阅读 Hibernate / NHibernate。

    一本好书也是“Scott Ambler 的”古老的“构建有效的对象应用程序”。

    【讨论】:

      【解决方案2】:

      您应该从使应用程序工作所需的内容开始。

      例如:“我需要一个用于用户登录的 web ui”

      1. 所以我需要一个控制器,它使用模型来检查昵称并通过
      2. 然后我需要一个 bll 对象来做检查昵称和通过的逻辑
      3. 然后我需要一个 dal 对象来访问数据库以检索用户信息

      如果您不开始这样思考(从上到下的方法),那么您将编写很多永远不会使用的代码。

      注意:dal 是否为 orm 映射是轶事。此外,如果模型使用 bsl 或 bsl 使用模型。恕我直言。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-01
        • 2013-02-06
        • 2013-09-24
        • 2011-04-03
        • 2011-04-26
        • 2013-05-31
        • 2010-09-30
        • 2010-12-24
        相关资源
        最近更新 更多