[디자인 원칙과 건의] 방법
6767 단어 설계 원칙
1.하나의 방법 내의 코드는 30줄을 초과할 수 없다.
2.어떤 방법이 이상을 던지지 말아야 합니까?
3.아직 실현되지 않은 방법은 NotImplemented Exception 이상을 던져야 합니다.
4.호출되지 않은 방법을 제거합니다.
5.방법명명은 Pascal명명을 추천합니다.
정적 방법 및 인스턴스 방법
1.정적 방법은 반드시 라인이 안전해야 한다
public static Dictionary<string, object> dict = new Dictionary<string, object>();
public static ConcurrentDictionary<string, object> concurrentDict = new ConcurrentDictionary<string, object>();
public static void Test1()
{
if (!dict.ContainsKey("key"))//
{
dict["key"] = "value";
}
}
public static void Test2()
{
concurrentDict["key"] = "value";// ,
}
2.만약 한 방법이this에 사용되지 않았다면, 성명을 정적 방법으로 고려하십시오
3.기본 라이브러리와 일반적인 방법은 정적 방법으로 우선적으로 설계됩니다 (예를 들어 Log.error SqlHelper.execute)
4.정적 방법을 선택해야 하는 이유
2.정적 방법을 호출하려면 실례 대상 지침을 전달할 필요가 없다
3.실례적인 방법은 최소한 new의 대상이 필요하며 GC의 압력이 있다
5.인스턴스 방법을 선택하는 이유
1.성명 방법을 설명할 때 접근성을 명시하고 기본값을 사용하지 마십시오. 기본 접근성에 익숙하지 않은 개발자가 잘못하지 않도록
2.최소한의 접근성을 유지합니다. 예를 들어private가 가능한 것은public를 사용하지 마십시오.
public class ClassA
{
public virtual void Test()
{
}
}
public class ClassC : ClassA
{
protected new void Test() //bad
{
}
}
방법 계승
1.부모 클래스를 다시 쓰는 방법은 예상치 못한 다시 쓰기를 피하기 위해 new 키워드로 덮어써야 합니다
public class ClassA
{
public void Test()
{
}
}
public class ClassB : ClassA
{
public new void Test()//good
{
}
}
public class ClassC : ClassA
{
public void Test() //bad
{
}
}
2.어떤 방법들은 함께 오버라이드를 받아야 한다. 예를 들어 IComparable.CompareTo와Equals, 또 예를 들면 연산자를 다시 쓸 때 = 와!=
3.하위 클래스 오버라이드 방법이 실현되기를 바랄 때만virtual 키워드를 사용합니다
4.구조 함수에서 허위 방법을 사용하지 마라
5.Dispose 방법을 실현했다면 이 방법 체내에서 부류의 Dispose 방법을 사용하십시오
대비하다
1.및 속성 비교
일부 컨텐트는 MSDN, FxCop 및 기타 타사 기사에서 참조됩니다.
본인의 수준에 한계가 있으므로, 누락이나 오류가 있으면, 고수 여러분의 지적을 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
설계 원칙: 중복 방식 및 중복 제거 방법문제: A곳의 코드와 B곳의 코드는 매우 비슷하지만 완전히 같지 않다. 원인: 개발자의 게으름이나 기능 부족은 카피식 개발이다. 방안: 템플릿 방법 모델이나 리셋 메커니즘(함수 지침, 의뢰와 인터페이스)을 도입한다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.