业务逻辑层设计

3

很抱歉,我对这个问题感到有些无知,但它一直困扰着我。

当设计分层应用程序的BLL时,您会将所有实体类放在一个命名空间中吗?例如:如果您有一个包括客户及其车辆的数据库,并且这些车辆以每月为基础进行服务。我认为你会将客户及其车辆与“服务模块”分开(这样,如果您需要更新服务方式或数据存储位置,就不需要触及客户\车辆模块)。

我的想法是否正确,还是应该改变我的设计思路?

这给我在使用LINQ to SQL时带来了问题。如果一半的表格实体类包含在“模块”A中,而另一半在“模块”B中,则必须在某处使“模块”A引用“模块”B,反之亦然,以适应与“模块”相邻的2个表之间的关联。

或者(现在刚想到)您会让1个表的实体类在“模块”中重叠(在两个模块中都有相同的类)吗?

感谢任何建议。


避免修改命名空间的目的是什么?我可以理解对于程序集。请注意,您在引号中使用名称模块,这意味着您也不太确定这些类的边界在哪里。 - Zdeslav Vojkovic
1
真正的设计模式专家也会将BLL与DAL分离。因此,他们不必担心具体的数据访问技术、其限制和实现细节。 - Dennis
1个回答

1

目前不是很清楚您是否也有数据访问层,因为您提到“这样,如果您需要更新服务方式或存储数据的位置,就不需要触及客户\车辆模块”。数据访问层将负责处理检索和存储数据,无论数据存储在哪里。

当然,可能需要更新车辆信息,如果可以在一个地方更新这些规则将会非常方便。您可以简单地创建一个带有这些规则的客户和车辆BLL。然后只需添加一个使用客户和车辆的CustomerVehicleService即可。没有规定您不能这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接