我正在寻找有关当前设计的一些反馈。
目前看来是这样的
我不太确定我用于图层的命名约定,所以如果有人有任何更好的建议,我会很乐意采用它们。
此外,我不喜欢DAL引用BusinessEntities Layer的想法,但我还有什么方法可以返回对象而不是数据集/ DataTables?
感谢您的反馈。
答案 0 :(得分:1)
关于你需要从DAL引用业务层,我同意这可能不是最佳的 - 较低层不应该知道它们之上的层,它会降低可重用性并增加额外/潜在的循环依赖性。
您是否考虑让您的业务实体“填满”并使用DAL类进行自己的持久性操作,而不是DAL就像他们的工厂一样(如您当前的设计)?这样,您的DAL将更直接地表示数据库,并且业务实体将包含填充和持续适当所需的(业务)逻辑。
此外,您指定的“BLL”图层在我看来并不真正包含业务逻辑;它看起来更像是实体的持久性服务层。
所以你建议的变化可能是:
根据您的要求,我会考虑将您的BusinessEntities和DataServices(原始设计中的BLL)合并为一个单独的层;我能想到将它们分开的唯一原因是,如果你正在做类似Silverlight的事情,你需要在客户端业务实体上进行异步数据操作。
当然,所有这些都是对您特定系统要求的不完全了解 - 您需要设计最适合您特定应用的产品。祝你好运!