.net – 将我的类/接口安排/组织到文件夹中?不用文件夹更改名称空间(Resharper:Namespace Provider = false)

我目前有一个项目,每天都在增加规模.它是我提供的API的容器.

我目前在根目录中拥有所有类和所有接口.

我已将我的Enums,Contants等分隔到他们自己的文件夹中,但我没有继承该文件夹作为命名空间的一部分,它们只是容器以保持它们整洁.

我想知道是否有人有这方面的经验?

我应该将我的接口分成他们自己的文件夹(不作为命名空间的一部分继承该文件夹)

我也应该把课程分开吗?

我也有类是其他类的子类.即类将其实现为属性.因此它永远不会在外面实例化.所以我应该将它们进一步分开并放入(例如)一个名为“Products”的文件夹,在这个文件夹中我将拥有我的Product类,然后是我的item类和其他特定于Product的类?

同样,使用该文件夹作为分隔符的手段,而不是作为命名空间的一部分继承文件夹名称.

我很乐意听到一些反馈.

谢谢

最佳答案 在开发过程中很少出现这种情况.实际上,在大多数情况下,您最终会拥有单独的项目,而不是具有大量文件夹的单个项目.就个人而言,我认为一个复杂的项目有明显的代码味道.如果不出意外,您的项目将无法快速编译,因为它被编译为块,而单独的项目可以并行编译(或多或少 – 它们都受依赖项影响).

也就是说,如果你真的想把所有东西放在一个项目中,这就是我对它的看法:

>如果项目的所有元素都有共同点(例如,有用的扩展方法),我会创建一个名为Infrastructure的文件夹,确保它不是命名空间提供程序并将所有常见内容放在那里.
>我试图在行为的基础上分离项目的其余部分,而不是类型.例如,你建议将枚举和类分开,但这对我来说似乎是错的 – 如果我有数据库实体是类或枚举,我宁愿有一个名为Entities的文件夹(因此是MyProject.Entities的命名空间)包含枚举和类在一个位置. (另请注意,如果您突然将其迁移到名为MyProject.Entities的项目,则无需更改命名空间.)

总结一下 – 尝试按功能分组文件,而不是按类型分组.

点赞