나는 이것에 대해 다른 철학을 가지고 있다고 생각합니다. 관련 항목을 함께 그룹화하는 것을 선호합니다. 수업에서 일하기 위해 뛰어 다니는 것을 참을 수 없습니다. 코드는 흐름을 따라야하며 접근성 (공개, 개인, 보호 등)을 기반으로하는 다소 인공적인 순서를 사용하거나 인스턴스 대 정적 또는 멤버 대 속성 대 함수는 좋은 흐름을 유지하는 데 도움이되지 않습니다. 나는 공개 방법 본당 경우에 따라서 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;
}
}