2011-08-09 5 views
0

문자열을 분석하는 클래스가 있으며 문자열이 null 또는 빈 문자열이 아닌 경우 하위 클래스 유형에 따라 개체를 사용하여 새 String 또는 new Date를 만듭니다. 문자열이 null이거나 비어 있으면 빈 문자열을 반환합니다. 현재이 클래스 변환기를 호출하지만이 이름이 오해의 소지가 있다고 생각합니다. 누군가이 클래스가 수행하는 작업에 대해 더 잘 생각할 수있는 이름이 있습니까? 내 코드를 더 읽기 쉽게 만들어주는 직관적 인 것이 필요하다. 감사.도움말 이름 지정 클래스

public abstract class Converter { 
    Object returnObject; 

    public Converter() { 

    } 

    public Object convert(String value) 
    { 
     if(!this.isEmpty(value)) 
     { 
      this.setReturnObject(value);  
     }else 
     { 
      this.returnObject = ""; 
     } 
     return this.getReturnObject(); 
    } 

    protected boolean isEmpty(String value) 
    { 
     return (value != null && value.equalsIgnoreCase("")); 
    } 

    protected abstract void setReturnObject(String value); 

    protected Object getReturnObject(){ 
     return this.returnObject; 
    } 
} 

public class NumberConverter extends Converter { 
    public NumberConverter() { 
    } 

    protected void setReturnObject(String value) { 
     this.returnObject = new Number(Integer.parseInt(value)); 
    } 
} 
+1

나는 그것이 여기에 속한다고 생각한다 : http://english.stackexchange.com/ :) – MByD

+2

나는 내가 올바른 포럼에 있다고 생각한다. 명명법은 최소한 삼촌 밥 책에 따르면 읽을 수있는 코드를 만드는 데있어 큰 부분입니다. Clean Coder 및 Clean Code –

답변

2

EntityMapper 또는 EntityTransformer를 사용할 수 있습니다.

+0

나는 –

+1

이상의 눈을 만나는 변압기를 좋아합니다 .... –

0

내 생각에 추상 클래스에는 그 안에 어떤 메소드 정의도 포함되어 있지 않습니다 ... !! 더 먼저 확인해보세요 .. !!

그리고 이름 짓기까지 나는 sathwick에 동의 할 것입니다. 감사합니다. . :)

+0

추상 클래스에 메소드 정의가 포함될 수 있습니다. 그것은 유효한 경우입니다. 인터페이스에만 메소드 정의가있을 수 없습니다. – Sathwick

+0

@indyaah, 추상 클래스가 의미하는 바가 그 안에 메소드 정의를 포함하고 있는지 확실하지 않습니다. 구현자가 오버라이드 (override)해야하는 추상 메소드를 의미하는 경우는 다음과 같습니다 : protected abstract void setReturnObject (String value); ? –

+0

그래 ... 내 실수 ... 나는 추상적 인 클래스와 인터페이스 사이에 혼란 스러울 것 같아. –

0

문자열을 가져 와서 구문 분석 중이므로 "파서"라고 말하고 싶습니다.

2

'Entity'접두사는 클래스가 엔티티가 아닌 String을 취하기 때문에 적합하지 않습니다.

원래 값이 바뀌지 않기 때문에 변압기 (또는 변환기)도 선택하지 않을 것입니다.

나는 Burleigh Bear가 제안한 StringMapper 또는 StringParser로 갈 것입니다.

제네릭을 사용하여 매핑 된/구문 분석 된 유형을 지정하고이 코드를 유형 안전성있게 만들 수 있습니다.