在构建项目时粒度过大是否有缺点?

Is there a disadvantage in too much granularity in structuring projects?

我的 BLL 中有很多 classes。假设我有 ItemBLL、ItemType BLL、EmployeeBLL 等,将它们分别放在一个单独的项目中有什么缺点吗?其中一些在逻辑上是可分组的,但是将每个 class 放在一个单独的项目中是否有任何问题(可以说维护它们不是问题)。

将它们分组有什么好处?

复杂性是最大的问题。您拥有的程序集越多,您需要跟踪的就越多。如果一个应用程序需要一个应用程序的某些东西,那么很可能它需要对其他应用程序有一个引用,如果它们是内部连接的话。

这并不是说集会越多越好。将它们分开可能有好处,例如哪些加载到内存中(当应用程序需要它们时它们按需加载)。

没有硬性规定哪一个更好,这要视情况而定。就个人而言,除非您有理由将它们分开,否则我会将它们合并。从长远来看,它使部署和管理更加容易 运行。同时将 类 保留在同一个程序集中(至少在 C# 中使用 internal modifier),使您能够在阻止引用 类 外部的同时让它们能够访问程序集内部的函数给它。