如何使用bll,dal和model?

时间:2010-03-04 09:20:52

标签: model data-access-layer bll

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

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

现在我坚持使用BLL课程。我可以为每个DAO / ModelObject编写一个BLLclass,或者我可以编写一个BLLclass来组合一些(逻辑)DAO ... 或者我只能编写一个可以管理所有内容的Bllclass。 (最后一个我确定它不是最好的方式..)

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

还有第二个问题。如果一个bll需要来自另一个表负责的表内容,那么获取内容的最佳方式是什么?去询问负责任的BLL或直接去DAO?

过去两个月我一直在努力解决这些问题,我不知道处理它的最佳方法是什么。

2 个答案:

答案 0 :(得分:5)

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

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

  1. 所以我需要一个使用模型来检查昵称并传递
  2. 的控制器
  3. 然后我需要一个bll对象来执行检查昵称的逻辑并传递
  4. 然后我需要一个dal对象来访问数据库以检索用户信息
  5. 如果你没有开始这样思考(从上到下的方法),那么你将编写许多永远不会被使用的代码。

    注意:如果dal是orm映射或不是轶事。此外,如果模型使用bsl或bsl使用模型。 IMHO。

答案 1 :(得分:-5)

  我在学校里每次都学到了   databasetable应该是一个对象   我的模特。

所以你没有学习面向对象?遗产?将多个对象类型映射到一个表?只有简单的“愚蠢”每个表都是一个对象?有更多逻辑方法来映射对象。所有这些都有各自不同的好坏方面(即根据具体情况选择它们,其中包括每个对象中的字段数)。

  

我也学会了每张桌子   (或模型对象)应该有一个   DAO创建了DAL。

去学校,要求退钱 - 他们是白痴。生成的DAO起初很糟糕。每个对象有一个变得更糟。 CONFIGURATION胜过CODE - 一般的DAO可以处理x个不同的对象,具体取决于配置。少量代码来测试和加载。这是正确的框架如何做到这一点(如Hibernate / NHibernate)。你可以写一个DAL,它在操作过程中暴露了大约六种方法,并处理无限数量的对象。在开始时,您告诉每个DAL它必须处理哪个对象以及如何处理,因此它可以生成正确的SQL等。

  

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

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

  

如果bll需要tablecontent   来自另一张桌子   负责,最好的方式是什么   得到内容?去询问   负责BLL或直接去   DAO?

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

阅读Hibernate / NHibernate。

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