Oop 在课堂上正确组织公共/受保护/私人功能
Resharper(与StyleCop搭档)让我在遵守它的大部分规则时有点像个整洁的怪胎。其中一个规则集(我相信来自StyleCop)强制将公共函数放在第一位,然后是受保护的静态,然后是受保护的,然后是私有的静态,最后是私有的 私有函数通常是作为助手备份公共函数功能的函数。假设我有下面的StyleCop强制函数顺序:Oop 在课堂上正确组织公共/受保护/私人功能,oop,Oop,Resharper(与StyleCop搭档)让我在遵守它的大部分规则时有点像个整洁的怪胎。其中一个规则集(我相信来自StyleCop)强制将公共函数放在第一位,然后是受保护的静态,然后是受保护的,然后是私有的静态,最后是私有的 私有函数通常是作为助手备份公共函数功能的函数。假设我有下面的StyleCop强制函数顺序: public FunctionA public FunctionB private FunctionAHelper1 private FunctionAHelper2 priva
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的普遍使用,后两者感觉它们仅仅是出于美观的原因,而不是任何真正的组织利益,这使得功能导航变得非常简单 但是,当您在使用或阅读某个功能时,在工作时只使用“向上翻页”和“向下翻页”更容易,而不必在从公共函数导航到其帮助函数时一直使用函数查找。可能重复的