将每个方法放在单独的文件中是不好的做法吗?

时间:2016-10-04 07:00:36

标签: c#

我制作了static partial class Utils,并将每个方法放在 Utils 文件夹中的单独文件中。

然后查看了部分类,除了分离自动生成的代码之外,我说它不应该使用它。

那么,我应该将它合并在一起还是可以将它放在一个文件夹中?

3 个答案:

答案 0 :(得分:5)

首先,具有许多方法的Utils类往往会变成大量无关的代码。因为几乎所有" Helper"方法将放在那里。通过将它们分成单个文件,您可以对抗症状而不是根本原因。您将这堆代码转换为一堆文件。

您应该将方法聚类到主题中,并以有意义的单位划分Utils类。请密切关注Single Responsibility Principle

答案 1 :(得分:1)

每个文件有一个的想法很有意义,因为它是一个独立的单元。

如果要将每个方法分离为单独的文件,那么您将自己介绍给组织的噩梦,因为一个类中的方法往往是相关的,而不是在单个文件中快速浏览为了能够轻松编码,您现在可以将自己传播到许多文件中。

除了用脚射击自己之外什么都不做。

编辑:如果你担心源代码控制(你的问题没有说明任何内容 - 但我认为我会添加它),今天的源代码控制系统即使人们正在处理同一个文件,也非常擅长合并。如果两个开发人员在同一个地方工作(例如相同的功能)并且需要手动合并,则可能存在问题,但是在组织良好的团队中 - 这种情况很少发生。

答案 2 :(得分:1)

来自MSDN

  

分割类定义时有几种情况   可取的:

     
      
  • 在处理大型项目时,将一个类分散到单独的文件上可以让多个程序员同时处理它。
  •   
  • 使用自动生成的源时,可以将代码添加到类中,而无需重新创建源文件。视觉工作室   在创建Windows窗体,Web服务包装器时使用此方法   代码,等等。您可以创建不使用这些类的代码   必须修改Visual Studio创建的文件。
  •   
  • 要拆分类定义,请使用partial关键字修饰符,如下所示:
  •   
public partial class Employee
{
    public void DoWork()
    {
    }
}

public partial class Employee
{
    public void GoToLunch()
    {
    }
}

话虽如此,我很少看到任何人想要使用partial的原因。根据{{​​3}}:

  

单一责任原则规定每个模块或类别   应该对功能的一部分负责   由软件提供,责任应该完全   由类

封装

现在有人可能会说你使用同一个类,因为你正在使用partial。但是,这是一个指示你在一堂课中做得很多。考虑将它们移动到单独的类中。我个人认为将util分成几个部分类的好处只会将问题从一个大类转移到几个文件的问题中。我相信如果您遵循单一责任原则,您将获得更易于维护的代码,并且如果您觉得需要将一个类分成几个部分类,那么您可能会做很多事情并且不遵循SRP