source

도우미 클래스와 유틸리티 클래스의 차이점은 무엇입니까?

goodcode 2023. 1. 19. 21:24
반응형

도우미 클래스와 유틸리티 클래스의 차이점은 무엇입니까?

클래스 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

반응형