Coding style 在哪里添加新方法?

Coding style 在哪里添加新方法?,coding-style,Coding Style,当你向一个类添加一个新方法时,你把它放在哪里?在课程结束的时候…排名第一?您是否将方法组织到特定分组中?按字母顺序排序 只是寻找保持类方法组织的一般实践 更新分组时,在组中的何处添加新方法?只是在末尾加上图钉,还是使用某种子分组,排序 更新2嗯……我想问题并不像我想的那么清楚。我不是真的在寻找班级组织。我对向现有类添加新方法特别感兴趣。例如: public class Attendant { public void GetDrinks(){} public void Welcom

当你向一个类添加一个新方法时,你把它放在哪里?在课程结束的时候…排名第一?您是否将方法组织到特定分组中?按字母顺序排序

只是寻找保持类方法组织的一般实践

更新分组时,在组中的何处添加新方法?只是在末尾加上图钉,还是使用某种子分组,排序

更新2嗯……我想问题并不像我想的那么清楚。我不是真的在寻找班级组织。我对向现有类添加新方法特别感兴趣。例如:

public class Attendant
{
    public void GetDrinks(){}
    public void WelcomeGuests(){}
    public void PickUpTrask(){}
    public void StrapIn(){}
}
现在我们将添加一个新方法
PrepareForCrash()
。它去哪里了?在列表的顶部,底部,按字母顺序或靠近
StrapIn()
方法,因为它是相关的。

靠近“StrapIn”,因为它是相关的。这样,如果以后重构,所有相关代码都在附近

大多数代码编辑器允许您在另一个窗格中按字母顺序浏览方法名称,因此在实际代码中按功能组织代码是有意义的。将函数方法组合在一起,使在类中导航时更加轻松。

靠近“StrapIn”,因为它是相关的。这样,如果以后重构,所有相关代码都在附近

大多数代码编辑器允许您在另一个窗格中按字母顺序浏览方法名称,因此在实际代码中按功能组织代码是有意义的。将函数方法组合在一起,使在类中导航时更轻松。

我喜欢C#和VB.net的地方是能够使用#区域标记,因此我的类通常如下所示

class MyClass
{

#region Constructors

public MyClass()
{
}

public MyClass(int x)
{
_x = x;
}

#endregion

#region Members
private int _x;
#endregion

#region methods
public void DoSomething()
{
}
#endregion

#region Properties
public int Y {get; private set;}
#endregion

}
所以基本上你可以把相似的东西放在一起,这样你就可以把所有的东西折叠到定义中,并且更快地得到你的东西。

我喜欢C和VB.net的地方是能够使用区域标记,所以我的类通常是这样的

class MyClass
{

#region Constructors

public MyClass()
{
}

public MyClass(int x)
{
_x = x;
}

#endregion

#region Members
private int _x;
#endregion

#region methods
public void DoSomething()
{
}
#endregion

#region Properties
public int Y {get; private set;}
#endregion

}

因此,基本上你可以把相似的东西放在一起,这样你就可以把所有东西折叠到定义中,并且更快地找到你的东西。

一般来说,这取决于现有的分组;如果有一个新方法适合的现有分组,我将把它放在那里。例如,如果有一组运算符,如果是运算符,我会将新方法与运算符放在一起


当然,如果没有好的分组,添加一个方法可能会建议新的分组;我将此视为重构的机会,并尝试在合理的情况下重新组合现有的运算符。

通常,这取决于现有的分组;如果有一个新方法适合的现有分组,我将把它放在那里。例如,如果有一组运算符,如果是运算符,我会将新方法与运算符放在一起


当然,如果没有好的分组,添加一个方法可能会建议新的分组;我将此视为重构的机会,并尝试在合理的情况下重新组合现有的运算符。

我将所有方法组织为公共方法、私有方法等区域,或者有时使用保存方法等功能。

我将所有方法组织为公共方法等区域,私人方法,或者有时通过诸如保存方法等功能实现…

我认为这是个人的选择。 然而,我喜欢这样组织我的课程

public class classname  
{
    <member variables>

    <constructors>
    <destructor>

    <public methods>

    <protected methods>

    <private methods>
}
公共类类名
{
}
原因正是如此

public class classname  
{
    <member variables>

    <constructors>
    <destructor>

    <public methods>

    <protected methods>

    <private methods>
}
顶部的成员变量
查看存在哪些成员变量以及它们是否已初始化

构造函数 查看成员变量是否已设置/初始化,以及类的所有构造选项

析构函数
查看类是如何清理的,并使用构造函数和成员变量验证它

公共方法
查看对象的调用方可以使用哪些可用契约

受保护的方法 查看继承类将使用什么

私有方法 因为它是关于类内部的信息,如果您需要了解类内部的信息,可以直接快速滚动到最后。但是要了解类的接口,一切都是从一开始的

更新-基于OP的更新
从逻辑上讲,一个好的方法是按照方法的功能分类来组织方法。 通过这种方式,您可以从IDE中获得对方法进行分类以及按字母顺序搜索的可读性(前提是在IDE中)

然而,从实际意义上讲,我认为将方法放在该部分的末尾是最好的方法。如果代码被比你自己更多的人共享,那么很难持续监控每个方法的去向,因为这是主观的


如果你要把它作为一个标准,那么很难为每种方法的放置位置提供界限。

我认为这是个人的选择。 然而,我喜欢这样组织我的课程

public class classname  
{
    <member variables>

    <constructors>
    <destructor>

    <public methods>

    <protected methods>

    <private methods>
}
公共类类名
{
}
原因正是如此

public class classname  
{
    <member variables>

    <constructors>
    <destructor>

    <public methods>

    <protected methods>

    <private methods>
}
顶部的成员变量
查看存在哪些成员变量以及它们是否已初始化

构造函数 查看成员变量是否已设置/初始化,以及类的所有构造选项

析构函数
查看类是如何清理的,并使用构造函数和成员变量验证它

公共方法
查看对象的调用方可以使用哪些可用契约

受保护的方法 查看继承类将使用什么

私有方法 因为它是关于类内部的信息,如果您需要了解类内部的信息,可以直接快速滚动到最后。但要了解类的接口,就只需要