코드 검토를 위해 다른 건축가에게 작성한 신청서를 제출했습니다. 그들 중 하나가 거의 즉시 저에게 답장을 보내면서 "정적"을 사용하지 마십시오. 정적 클래스와 메소드로 자동화 된 테스트를 작성할 수 없습니다. "정적"은 피해야합니다. "
수업을 확인한 후 1/4 정도의 수업이 "정적"으로 표시되어 있습니다. 클래스는 코드 전체에서 사용되는 단일 전역 클래스이므로 클래스의 인스턴스를 만들지 않을 때는 정적을 사용합니다.
그는 정적 코드와 함께 사용할 수없는 조롱, IOC / DI 기술과 관련된 것을 언급했습니다. 그는 테스트 할 수 없기 때문에 써드 파티 라이브러리가 정적 일 때는 불행한 일이라고 말했다.
이 다른 건축가가 맞습니까?
업데이트 : 여기에 예가 있습니다.
APIManager-이 클래스는 내가 호출하는 타사 API의 사전을 다음 허용 시간과 함께 유지합니다. 많은 제 3자가 서비스 약관에서 가지고있는 API 사용 제한을 시행합니다. Thread.Sleep (APIManager.GetWait ( "ProviderXYZ"));를 호출하여 타사 서비스를 호출하는 모든 곳에서 사용합니다. 전화하기 전에. 여기에있는 모든 것은 스레드 안전하고 C #의 TPL과 잘 작동합니다.
static
괜찮습니다;static
필드 는 매우 주의해서 다루어야합니다