XHelper 또는 XUtils 클래스를 호출하는 방법을 결정하는 방법은 무엇입니까?
내 마음에 :
도우미 클래스 는 인스턴스화 할 수 있고 비즈니스 작업을 수행 할 수있는 클래스입니다.
Utils class 는 일종의 인스턴스에 대해 작고 반복적 인 작업을 수행하는 정적 클래스입니다 (Apache의 유틸리티 클래스 ArrayUtils 또는 IOUtils의 예).
답변
사용할 이름 지정 스타일이 많이 있습니다. 더 일반적이기 때문에 Utils를 제안합니다.
Utility 클래스는 정적 메서드 만 있고 상태 비 저장으로 이해됩니다. 그러한 클래스의 인스턴스를 만들지 않습니다.
도우미는 유틸리티 클래스이거나 상태 저장이거나 인스턴스 생성을 요구할 수 있습니다. 가능하면 이것을 피할 것입니다.
이름을 더 구체적으로 만들 수 있다면. 예를 들어 정렬 방법이 있으면 XSorter로 만듭니다.
배열의 경우 다음과 같은 도우미 클래스를 찾을 수 있습니다.
Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper
BTW 유틸리티 클래스의 약어는 인스턴스가없는 열거 형입니다.
enum XUtils {;
static methods here
}
인터페이스를 구현해야하는 경우 Stateless Singleton을 사용합니다.
enum XHelper implements RequiredInterface {
INSTANCE;
// no instance fields.
}
답변
일반적으로? 그것은 완전히 임의적입니다. 이것에 대한 규칙은 없습니다.
답변
유틸리티는 일반적으로 사용되는 “리프 노드”클래스입니다. 즉, 프로젝트에 대한 종속성이 없으며 중단되거나 쓸모 없게되지 않고 프로젝트간에 이식 될 수 있습니다. 예 : Vector3
, RandomNumberGenerator
, StringMatcher
, 등 …
“도우미”는 다른 클래스를 돕기위한 디자인을 가진 클래스로 보입니다. 프로젝트에 따라 다를 수도 있고 그렇지 않을 수도 있습니다. GameNetworkClient
클래스를 만드는 경우 GameNetworkConnection
클래스가 ‘도움’ 이라고 말할 수 GameNetworkClient
있습니다..
개발자가 도구를 언급하는 방식은 이러한 단어의 일반적인 사용을 반영합니다. “유용함”대 “유용함”으로 설명 된 보청기 도구를 기억할 수 있다면 유용한 도구가 약간의 맥락을 갖는 경향이 있습니다 (치즈 강판은 치즈를 갈는 데 도움이되고 옥수수 스트리퍼는 옥수수를 벗기는 데 도움이되며 스피드 로더는 총기를 재장 전하는 데 도움이됩니다). “유틸리티”는 다양한 상황 (WD-40, 덕트 테이프, 군용 칼, 접착제, 손전등 등)에서 작동 할 것으로 예상됩니다.
답변
Jesper가 말했듯이, 그것은 완전히 임의적 입니다. 조직에 적합한 것이 무엇인지 생각하고이를 관습으로 만들 수 있습니다.
저에게는 다음과 같습니다.
utils- 어디로 든 자유롭게 이동하고 가져올 수있는 정적 클래스입니다.
다른 모듈에서 유용 할 수있는 일반적인 작업을 수행합니다. Peter Lawrey가 말했듯이 더 구체적인 이름 이 유용합니다.
헬퍼 – 클래스 돕는 또 다른 클래스 나 모듈을.
배치 된 모듈에서만 사용되며 다른 곳에서 가져 오는 것은 의미가 없습니다. 따라서 이름은 더 구체적 일 수 있습니다. ModuleName Helper (예 : AdministrationHelper , LoginHelper )
답변
이것에 대한 궁극적 인 답은 없습니다. 하나의 명명 체계를 파악하고이를 고수하십시오. 패키지와 클래스의 이름을 지정하는 것은 소프트웨어 아키텍처의 중요한 부분이며 누구도 그 결정을 앗아 갈 수 없습니다.
개인적으로 XHelper를 더 좋아하지만 XUtils는 외래 코드에서 더 자주 봅니다.
또한 JDK와 Guava 에서 모두 찾을 수있는 “복수”명명 체계를 좋아합니다 .
클래스가 Collection
객체를 처리하는 경우Collections
배열> 배열 (jdk)
목록> 목록 (guava)
맵> 맵 (guava)
기타