在我公司,我必须使用Bll,Dal和模型层来创建具有数据库的应用程序。
我在学校学到了每个数据表都应该是我模型中的一个对象。所以我创建了我的数据库的整个模型。 此外,我已经了解到,对于每个表(或模型对象),都应该在DAL中创建一个DAO。所以我这样做。
现在我坚持使用BLL课程。我可以为每个DAO / ModelObject编写一个BLLclass,或者我可以编写一个BLLclass来组合一些(逻辑)DAO ... 或者我只能编写一个可以管理所有内容的Bllclass。 (最后一个我确定它不是最好的方式..)
处理这个Bll'问题'的最佳做法是什么?
还有第二个问题。如果一个bll需要来自另一个表负责的表内容,那么获取内容的最佳方式是什么?去询问负责任的BLL或直接去DAO?
过去两个月我一直在努力解决这些问题,我不知道处理它的最佳方法是什么。
答案 0 :(得分:5)
您应该从使用该应用程序所需的内容开始。
例如:“我需要一个用户登录的web ui”
如果你没有开始这样思考(从上到下的方法),那么你将编写许多永远不会被使用的代码。
注意:如果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的”古老的“建筑对象应用程序”。