我一直在努力真正了解SRP和SOLID,并完全理解人们应用它的原因。我还在努力掌握SRP的“艺术”。进入它,我最了解的建议是,“写出你的课程的目的是什么。如果句子有单词,但是,除了,那么它做得太多了。所以我可能写了一个名为”ActiveDirectoryHelper的类“(臭,我知道)有CreateComputerObject,FindComputerObject和DeleteComputerObject。我认为这应该分成三个单独的类,不是吗?
但更重要的是,如果我虔诚地应用SRP,我不会在Visual Studio / C#项目中获得数十个和几十个类.cs文件吗?如果是这样,如果这是必须的,你如何组织你的项目?
非常感谢
答案 0 :(得分:2)
所以我可能编写了一个名为“ActiveDirectoryHelper”的类(臭,我知道),它有CreateComputerObject,FindComputerObject和DeleteComputerObject。我认为这应该分为三个单独的类,不是吗?
根据SRP类应该只有一个改变的理由。例如,如果您预计在某些时候您想要更改ComputerObject的创建逻辑,并且此更改不会影响Find *和Delete *方法,则应将CreateComputerObject提取到单独的类:ComputerObjectFactory。
但更重要的是,如果我虔诚地应用SRP,我不会在Visual Studio / C#项目中获得数十个和几十个类.cs文件吗?
这是一个令人惊讶的频繁问题/争论,你在MS土地上听到,有些人喜欢巨大的“神级”,并使用代码区域进行组织。大量的课程通常是一个非常好的迹象。大多数情况下,它使您的代码更具可读性,可测试性和组织性。毕竟C#是面向对象的语言,所以不要害怕创建更多的类。
如果是这样,如果这是必须的,你如何组织你的项目?
例如,使用命名空间和文件夹?