Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 在课堂上正确组织公共/受保护/私人功能_Oop - Fatal编程技术网

Oop 在课堂上正确组织公共/受保护/私人功能

Oop 在课堂上正确组织公共/受保护/私人功能,oop,Oop,Resharper(与StyleCop搭档)让我在遵守它的大部分规则时有点像个整洁的怪胎。其中一个规则集(我相信来自StyleCop)强制将公共函数放在第一位,然后是受保护的静态,然后是受保护的,然后是私有的静态,最后是私有的 私有函数通常是作为助手备份公共函数功能的函数。假设我有下面的StyleCop强制函数顺序: public FunctionA public FunctionB private FunctionAHelper1 private FunctionAHelper2 priva

Resharper(与StyleCop搭档)让我在遵守它的大部分规则时有点像个整洁的怪胎。其中一个规则集(我相信来自StyleCop)强制将公共函数放在第一位,然后是受保护的静态,然后是受保护的,然后是私有的静态,最后是私有的

私有函数通常是作为助手备份公共函数功能的函数。假设我有下面的StyleCop强制函数顺序:

public FunctionA
public FunctionB

private FunctionAHelper1
private FunctionAHelper2
private FunctionBHelper1
private FunctionBHelper2
…虽然这还不算太糟,但我发现自己希望将支持的私有方法保持在调用它们的函数附近,因此看起来更像这样:

public FunctionA
private FunctionAHelper1
private FunctionAHelper2

public FunctionB
private FunctionBHelper1
private FunctionBHelper2

你学到了什么指导了类中方法的组织?StyleCop想要公共/受保护/私人订购的理由是什么?这真的归结为偏好的问题,还是有我没有看到的好处?

这真的归结为您喜欢什么,以及您喜欢如何导航代码

您可以订购您的方法:

  • 按字母顺序(GetEntityA、GetEntityB、StoreEntityA等)
  • 按功能区域(EntityA方法、EntityB方法等)
  • 按分类(验证方法、转换方法、辅助方法等)
  • 按可见性(公共方法、内部方法、受保护方法等)
当然,你可以把字母顺序和可视性或任何你喜欢的东西结合起来。
我更喜欢将字母顺序与可见性相结合,并将其用于具有分类的大型类。对于DAO类(有时是功能区)。

如果您使用IDE之类的任何东西,基本上都没有关系。您将在GUI中通过代码导航,并根据实际需要对属性、成员等进行排序


(我认为编程时,代码格式不应该是一个问题。当然,它必须是合理的,并且符合公司标准,但有一些工具可以自动进行格式设置。)

这肯定是一种样式首选项,很像关于大括号放置位置的样式参数,括号前后是否有空格,空行等

和你一样,我更喜欢将私有函数放在使用它们的公共函数附近。更具体地说,我更喜欢根据函数的用法或功能对函数进行分组,而不是按字母顺序或可见性进行分组

考虑到当今IDE的普遍使用,后两者感觉它们仅仅是出于美观的原因,而不是任何真正的组织利益,这使得功能导航变得非常简单

但是,当您在使用或阅读某个功能时,在工作时只使用“向上翻页”和“向下翻页”更容易,而不必在从公共函数导航到其帮助函数时一直使用函数查找。

可能重复的