에 따르면 때 원시 집착하지 않는 코드 냄새입니까? String 객체 대신 우편 번호를 나타내는 ZipCode 객체를 만들어야합니다.
그러나 내 경험상, 나는보고 싶어한다
public class Address{
public String zipCode;
}
대신에
public class Address{
public ZipCode zipCode;
}
후자는 프로그램을 이해하기 위해 ZipCode 클래스로 이동해야한다고 생각하기 때문입니다.
그리고 모든 기본 데이터 필드가 클래스로 대체 된 경우 정의를 보려면 많은 클래스간에 이동해야한다고 생각합니다. 요요 문제 (반 패턴)로 고통받는 것처럼 느껴집니다 .
따라서 ZipCode 메소드를 새 클래스로 이동하고 싶습니다. 예를 들면 다음과 같습니다.
낡은:
public class ZipCode{
public boolean validate(String zipCode){
}
}
새로운:
public class ZipCodeHelper{
public static boolean validate(String zipCode){
}
}
우편 번호를 확인해야하는 사람 만이 ZipCodeHelper 클래스에 의존합니다. 그리고 원시적 인 강박 관념을 유지하는 또 다른 "이점"을 발견했습니다. 클래스가 직렬화 된 양식처럼 보이게합니다 (예 : 문자열 열 zipCode가있는 주소 테이블).
내 질문은 "요요 문제를 피하는 것"(클래스 정의 간 이동)이 "원시적 인 집착"을 허용하는 타당한 이유인가?