도우미 클래스와 유틸리티 클래스의 차이점은 무엇입니까?
클래스 XHelper 또는 XUtils를 호출하는 방법을 어떻게 결정합니까?
내 생각에는:
도우미 클래스(Helper class)는 인스턴스화하여 비즈니스 작업을 수행할 수 있는 클래스입니다.
Utils 클래스는 일종의 인스턴스에서 작고 반복적인 작업을 수행하는 정적 클래스입니다(Apache의 utils 클래스 또는 IOUtils 클래스).
사용할 수 있는 이름 지정 스타일이 많이 있습니다.Utils가 더 일반적이기 때문에 추천합니다.
유틸리티 클래스는 정적 메서드만 있고 상태 비저장인 것으로 이해됩니다.이러한 클래스의 인스턴스를 만들 수 없습니다.
도우미는 유틸리티 클래스가 될 수도 있고 상태 저장 또는 인스턴스 생성이 필요할 수도 있습니다.가능하면 피하고 싶어요.
이름을 좀 더 구체적으로 할 수 있는 경우(예: 정렬 방법이 있는 경우) XSorter로 합니다.
어레이의 경우 다음과 같은 도우미 클래스를 찾을 수 있습니다.
Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper
BTW 유틸리티 클래스의 짧은 글자는 인스턴스가 없는 열거형입니다.
enum XUtils {;
static methods here
}
인터페이스를 실장할 필요가 있는 경우는, 스테이트리스 싱글톤을 사용합니다.
enum XHelper implements RequiredInterface {
INSTANCE;
// no instance fields.
}
일반적으로요?그건 완전히 제멋대로야.여기에는 규칙이 없습니다.
유틸리티는 일반적으로 사용되는 "리프 노드" 클래스입니다.즉, 프로젝트에 의존하지 않고, 고장나거나 쓸모 없게 되지 않고 프로젝트 간에 이동할 수 있습니다.예:Vector3,RandomNumberGenerator,StringMatcher등...
"도움꾼"은 다른 수업을 돕는 것을 목적으로 하는 모든 수업인 것처럼 보인다.프로젝트에 따라 다를 수도 있고 그렇지 않을 수도 있습니다.를 작성하는 경우GameNetworkClientclass, 라고 할 수 있습니다.GameNetworkConnection클래스는 "도움"이 되기 때문에 '도움'이 됩니다.GameNetworkClient.
개발자가 도구를 참조하는 방식은 이러한 단어의 일반적인 사용을 반영합니다."도움이 된다"와 "유용하다"고 묘사된 보청기를 떠올릴 수 있다면, 유용한 도구는 문맥이 있는 경향이 있습니다(치즈는 치즈를 갈고, 옥수수 스트리퍼는 옥수수를 벗겨내고, 스피드 로더는 화기를 장전하는 데 도움이 됩니다)."유틸리티"는 다양한 컨텍스트(WD-40, 덕트 테이프, 밀리터리 나이프, 글루, 손전등 등)에서 작동해야 합니다.
Jesper가 말했듯이, 그건 완전히 제멋대로야.귀사에 도움이 되는 것을 생각해 보고, 그것을 규약으로 할 수 있습니다.
저는 이런 느낌이에요.
utils - 임의의 장소에서 자유롭게 이동 및 Import할 수 있는 스태틱클래스
다양한 모듈에서 도움이 될 수 있는 일반적인 작업을 수행합니다.피터 로레이가 말했듯이, 좀 더 구체적인 이름들이 유용하다.
도우미 - 다른 클래스 또는 모듈을 지원하는 클래스입니다.
배치되어 있는 모듈에서만 사용되는 태스크는 다른 곳에서 Import할 수 없습니다.따라서 이름이 더 구체적일 수 있습니다(Module Name).도우미(관리 등)도우미, Login Helper)
이것에 대한 궁극적인 해답은 없다.한 가지 명명 체계를 찾아내고 그대로 유지하세요.패키지와 클래스의 이름을 지정하는 것은 소프트웨어 아키텍처의 중요한 부분이며, 누구도 이러한 결정을 내릴 수 없습니다.
저는 개인적으로 XHelper를 더 좋아하지만, 외국 코드에서는 XUtils를 더 자주 봅니다.
JDK와 Guava에서 볼 수 있는 "복수" 명명 방식도 마음에 듭니다.
가 학학 with 를 취급하는 경우Collection라고 것Collections
]> [ Arrays ]()[ Arrays ]> [ Arrays ](jdk)
> 목록 ( [목록] > [목록] ( )
지도지도]> [지도] ( )
기타.
언급URL : https://stackoverflow.com/questions/12192050/what-are-the-differences-between-helper-and-utility-classes
'source' 카테고리의 다른 글
| Node.js Mongoose를 사용하여 문서를 삭제하려면 어떻게 해야 합니까? (0) | 2023.01.19 |
|---|---|
| 키 이름에 따라 HashMap에서 문자열 값 가져오기 (0) | 2023.01.19 |
| 템플릿의 모델 인스턴스 필드 이름 및 값에 대해 반복 (0) | 2023.01.19 |
| max_allowed_packet 크기를 변경하는 방법 (0) | 2023.01.09 |
| JPA와 JDBC는 어떻게 다른가요? (0) | 2023.01.09 |