4

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

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

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

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

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

在过去的两个月里,我一直在为这些问题苦苦挣扎,我不知道处理它的最佳方法是什么。

4

2 回答 2

5

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

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

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

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

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

于 2010-03-11T05:21:03.087 回答
-5

我在学校了解到,每个数据库表都应该是我模型中的一个对象。

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

我还了解到,对于每个表(或模型对象),都应该在 DAL 中创建一个 DAO。

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

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

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

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

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

阅读 Hibernate / NHibernate。

一本好书也是“Scott Ambler 的”古老的“Building Object Applications that work”。

于 2010-03-04T09:32:37.127 回答