2011-08-09 361 views
0

我有一個類來分析一個字符串,如果字符串不是空字符串,它會根據子類的類型使用該對象創建一個新的String或new Date。如果字符串爲空或空,它將返回一個空字符串。目前我稱之爲類轉換器,但我覺得這個名字是誤導性的,有沒有更好的名字,任何人都可以想到這個類正在做什麼?我想直觀的東西讓我的代碼更具可讀性。謝謝。需要幫助命名類

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

我喜歡Transformer –

+1

多於滿足眼睛。 –

0

我想抽象類不包含任何方法定義裏面...! 最好先檢查一下這個東西.. !!

就命名而言,我會同意sathwick。 謝謝。 :)

+0

抽象類可以包含方法定義。這是一個有效的案例。只有接口不能有方法定義。 – Sathwick

+0

@indyaah,我不確定你的意思是什麼抽象類不包含任何內部的方法定義?如果你指的是實現者必須覆蓋的抽象方法,你會看到:protected abstract void setReturnObject(String value); ? –

+0

是的.. 我的錯誤... 我想我在抽象類和接口之間感到困惑。 –

0

既然你正在一個字符串和解析它,我會說「解析器」。

2

'實體'前綴不合適,因爲該類沒有采用實體,而是一個字符串。

我也不會選擇變壓器(或轉換器),因爲原始值不會改變(是一種不可變的String類型的規則)。

我會去的StringMapper或可能StringParser(由伯利熊建議)。

在附註上,您可以使用泛型來指定映射/解析類型,並使此代碼更安全一些。