2011-10-13 44 views
0

我有一個類說Test.java,它包含一個名爲errorCode的成員變量,它屬於ErrorCode類,它只不過是一個int類型的包裝器errorCode ...我的問題是關於setter和吸氣劑,他們應該是什麼樣的理想簽名。該錯誤碼爲一個int這樣的setter會像Java類客戶端的理想職責

class Test{ 
ErrorCode errorCode; 
    public void setCode(int errorCode) 
    { 
     this.errorCode = new ErrorCode(errorCode); 
    } 

    public int getCode() 
    { 
     return this.errorCode.getCode(); 
    } 
} 

所以應該,類在一個int創建對象,並讓客戶通過或應客戶端創建對象和類只將其設置爲它的成員變量,理想情況下,我們應該贊成客戶還是班級?

回答

1

我會說,如果可能的話,你應該設置的東西,讓你的測試類不需要知道ErrorCode的內部是什麼。現在它是一個int類型的包裝器,但是將來可能需要其他東西,或者你可能有多個ErrorCode的子類。

Better for Test接受並返回ErrorCode對象,並讓ErrorCode自己處理創建實例。您可能想給ErrorCode一些靜態工廠方法,如

static ErrorCode createFromInt(int code) { 
    return new ErrorCode(code); 
} 
0

如果你希望你的類是適當的Java bean,而你有一個屬性ErrorCode errorCode,那麼該公約是有一個調節器和形式

public void setErrorCode(ErrorCode errorCode) { 
    this.errorCode = errorCode; 
} 

public ErrorCode getErrorCode(){...} 

的一個getter如果你希望能夠設置由其下方的int值錯誤代碼,我將創建一個方法

public void setErrorCodeByValue(int code) { 
... 
} 

,你的代碼做同樣得到公正的ErrorCode的代碼有價值的東西。

請注意,您可以這樣定義

public void setErrorCode(int code) {...} 

除了上面顯示的適當的Java bean的setter方法(所以有2種方法setErrorCode,使用不同的參數,ErrorCode類型之一和類型之一int)如果你想...