在我的公司里,我必须使用Bll,Dal和模型层来创建数据库应用程序。
我在学校学到,每个数据库表都应该是我模型中的一个对象。所以我创建了我的数据库的整个模型。此外,我还了解到,对于每个表(或模型对象),都应该在DAL中创建一个DAO。所以我这样做是为了。
现在我被BLL类所困住了。我可以为每个DAO/模型对象编写一个BLLclass,或者我可以编写一个组合了一些(逻辑)DAO的BLLclass……或者我可以只编写一个Bllclass来管理一切。(最后一个,我敢肯定这不是最好的方法。)
处理这个Bll“问题”的最佳实践是什么?
第二个问题。如果bll需要来自其他表的表内容,而它并不负责,那么获取内容的最佳方式是什么?去问负责的BLL还是直接去问DAO?
在过去的两个月里,我一直在为这些问题而苦苦挣扎,我不知道什么是最好的解决方法。
发布于 2010-03-11 13:21:03
你应该从让应用程序工作所需的东西开始。
例如:“我需要一个web用户界面来进行用户登录”
如果你不开始这样思考(一种从上到下的方法),那么你将会写出很多永远不会被使用的代码。
注意: dal是否是orm映射是轶事。另外,如果模型使用bsl或bsl,请使用模型。我的天。
发布于 2010-03-04 17:32:37
我在学校学到,每个数据库表在我的模型中都应该是一个对象。
所以你没有学习面向对象?继承?将多个对象类型映射到一个表?只有简单的“愚蠢”的每个表都是一个对象?有更多的逻辑方法来映射对象。它们都有自己不同的优点和缺点(即根据情况来选择它们,其中包括每个对象中的字段数量)。
我还了解到,对于每个表(或模型对象),都应该在DAL中创建一个DAO。
去学校,要回那笔钱-他们都是笨蛋。生成的DAO从一开始就很糟糕。更糟糕的是,每个对象都有一个。配置胜过代码-泛型DAO可以处理x个不同的对象,具体取决于配置。测试和加载的代码要少得多。这就是合适的框架如何做到这一点(如Hibernate/NHibernate)。您可以很容易地编写一个DAL,它在操作期间公开了大约六个方法,并处理无限数量的对象。一开始,您告诉每个DAL它必须处理哪个对象以及如何处理,这样它就可以生成适当的SQL等。
处理这个Bll‘问题’的最佳实践是什么?
回到学校,学习基础知识。请阅读O/R映射器。Hibernate / NHibernate (你不用命名你使用的语言),Toplink等等。
如果bll需要来自其他表的表内容,那么获取内容的最佳方式是什么?去问负责的BLL还是直接去问DAO?
取决于架构。通常,业务对象将来自工厂,并且应该只与工厂对话。然后,工厂将在做真正有趣的事情(如缓存)之前处理DAL。
阅读Hibernate / NHibernate。
一本好书也是"Scott Ambler的“古老的”工作的构建对象应用程序“。
https://stackoverflow.com/questions/2378043
复制相似问题