Java 클래스 버전 별 명명 규칙


10

두 소프트웨어 사이의 어댑터를 만들어야합니다 (기계 시뮬레이션, 비 CS). 라는 클래스가 있다고 가정합니다 ThatThing. 다양한 공급 업체별 구현을 처리해야합니다. 이 버전에는 의미있는 이름이 없습니다 (일식 헬리오스, 인디고 등).

1. 버전 번호를 표현할 클래스의 이름을 어떻게 지정해야합니까?

내가 좋아하는 클래스 찾기 ThatThing_3_6_Impl, ThatThing_3_7_Impl매우 어색합니다.

답변:


20

다른 패키지 이름을 사용하십시오.

com.example.version36.ThatThing
com.example.version37.ThatThing

이를 통해 특정 버전에 대한 모든 "사물"을 함께 유지할 수 있습니다.

Apache Commons Lang은 "버전 3"재 작성을 릴리스 할 때이 형식을 사용했습니다.


단일 클래스에서 두 버전을 모두 참조 할 수 있어야하므로 이름을 다음과 같이 줄입니다.

ThatThing36
ThatThing37

귀하의 경우에는,이 설명이 충분 것, 그것은 추악한 제거 Impl_'들.


잘 들립니다. 나는 그것에 대해 생각합니다. 이 버전들이 합쳐진 곳에서 참조 용으로 정규화 된 이름을 사용해야합니까?
user802421

그들은 어떻게 모입니까? 의존성 주입을 사용하고 있습니까? 어느 쪽이든, 당신에게 질문에 대답하기 위해, 그렇습니다.
Jeremy Heiler

릴리스간에 변경되는 여러 버전의 데이터 모델이 있습니다. 기능의 일부 특정 하위 집합이 혼합되어 있습니다. 라이브러리 지원이 전혀 없습니다 (예 : di, codegen 없음). 이것은 11 년의 소프트웨어 진화의 역사입니다. (.
user802421

슬퍼. 그것은 필요에 의한 것이 가능 version37.ThatThing확장하는 version36.ThatThing고통의 일부를 완화 것?
Jeremy Heiler

불행히도 그것들은 구조적으로 다르며 복잡한 변환이 필요합니다. 비트 맵 및 벡터 그래픽과 같습니다.
user802421

2

중요하지 않습니다. 표현하고 고수하는 데 필요한 모든 것을 표현하는 규칙을 선택하십시오.

ThatThing3_6"That Thing 3.6"에 사용할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.