나는 최근에 내가 작업하는 큰 C # 코드베이스 주위에 떠있는 몇 가지 도우미 스타일의 "유틸리티 백"정적 클래스를 검토하고 있었다.
// Helpers.cs
public static class Helpers
{
public static void DoSomething() {}
public static void DoSomethingElse() {}
}
내가 검토 한 특정 방법은
- 대부분 서로 관련이없고
- 호출에서 명시적인 상태가 지속되지 않으면
- 작고
- 각각 관련없는 다양한 유형에 의해 소비됩니다.
편집 : 위의 문제는 의심되는 문제의 목록이 아닙니다. 내가 검토하고있는 특정 방법의 공통 특성 목록입니다. 답변이보다 관련성이 높은 솔루션을 제공하도록 돕는 것이 맥락입니다.
이 질문에 대해서는이 종류의 방법을 GLUM (일반 경량 유틸리티 방법)이라고합니다. "glum"의 부정적인 의미는 부분적으로 의도 된 것입니다. 이것이 바보 같은 말장난으로 생긴다면 미안합니다.
GLUM에 대한 내 자신의 기본 회의론을 제외하더라도, 나는 이것에 대해 다음과 같은 것을 좋아하지 않습니다.
- 정적 클래스는 네임 스페이스로만 사용됩니다.
- 정적 클래스 식별자는 기본적으로 의미가 없습니다.
- 새로운 GLUM이 추가 될 때, (a)이 "가방"클래스는 정당한 이유없이 만지거나 (b) 새로운 "가방"클래스가 생성됩니다 (그 자체로는 일반적으로 문제가되지 않습니다. 나쁜 점은 새로운 것입니다) 정적 클래스는 종종 관련성 문제를 반복하지만 더 적은 방법으로).
- 메타 이름은 여부, 표준이 아닌, 불가피하게 끔찍한, 일반적으로 내부적으로 일관성
Helpers
,Utilities
또는 무엇 이건.
이것을 리팩토링하기위한 합리적으로 좋고 간단한 패턴은 무엇입니까?
아마 강조해야 할 것입니다 : 내가 다루는 모든 방법은 서로 관련이 없습니다. 그것들을 더 세밀하지만 여전히 다중 멤버 정적 클래스 메소드 백으로 나누는 합리적인 방법은없는 것 같습니다.