tem*_*ame 78 oop coding-style class-design
我从头开始一个新项目,希望它干净/具有良好的编码标准.经验丰富的开发人员会以什么样的顺序在课堂上做出贡献?
答:1)公共方法2)私人方法3)公共变量4)私有变量
B:1)公共变量2)私有变量3)公共方法4)私有方法
C:1)公共变量2)公共方法3)私有方法4)私有变量
我通常喜欢将公共静态变量放在顶部,但是然后会在构造函数之前列出公共静态方法,还是应该首先列出构造函数?诸如此类的事情...
我知道这很有点但我只是想知道:这是什么最好的做法?
PS:不,我不使用Cc#.我知道.我是个luddite.
Asa*_*aph 121
在清洁代码中,Robert C. Martin建议编码员始终将成员变量放在类的顶部(首先是常量,然后是私有成员),并且应该以这样的方式对方法进行排序,使得它们看起来像一个不会导致的故事读者需要过多地跳过代码.这是组织代码而不是访问修饰符的更合理的方法.
Leo*_*Hat 46
最佳做法是保持一致.
就个人而言,我更喜欢public
首先使用方法,然后是protected
方法,然后是private
方法.会员数据通常应该是私人或受保护的,除非您有充分的理由不这样做.
将public
方法置于顶部的理由是它为您的类定义了接口,因此任何阅读头文件的人都应该能够立即看到这些信息.
一般而言,对于大多数查看头文件的人来说private
,protected
成员并不那么重要,除非他们正在考虑修改类的内部.保持它们"不碍事"确保仅在需要知道的基础上维护该信息,这是封装的一个更重要的方面.
bar*_*ley 16
这将是我的订单
我使用以下规则:
这个想法是在行为(方法)之前定义对象(数据)。静态需要分离,因为它们实际上并不是对象的一部分,也不是对象的行为。
我认为我对此有不同的理念.我更喜欢将相关项目组合在一起.我不能忍受跳到班上工作.代码应该流动并使用基于可访问性(公共,私有,受保护等)或实例与静态或成员与属性与功能的相当人为的顺序无助于保持良好的流程.所以,如果我中堂公共方法Method
由私有的辅助方法来实现HelperMethodA
,HelperMethodB
等等.然后,而不是让这些方法远离文件中的对方,我将让他们彼此接近.同样,如果我有一个静态方法实现的实例方法,我也会将它们组合在一起.
所以我的课程通常如下:
class MyClass {
public string Method(int a) {
return HelperMethodA(a) + HelperMethodB(this.SomeStringMember);
}
string HelperMethodA(int a) { // returns some string }
string HelperMethodB(string s) { // returns some string }
public bool Equals(MyClass other) { return MyClass.Equals(this, other); }
public static bool Equals(MyClass left, MyClass right) { // return some bool }
public double SomeCalculation(double x, double y) {
if(x < 0) throw new ArgumentOutOfRangeException("x");
return DoSomeCalculation(x, y);
}
const double aConstant;
const double anotherConstant;
double DoSomeCalculation(double x, double y) {
return Math.Pow(aConstant, x) * Math.Sin(y)
+ this.SomeDoubleMember * anotherConstant;
}
}
Run Code Online (Sandbox Code Playgroud)