2011-07-21 41 views
1

我在那裏我創建一個字符串的方法(最終值​​)是基於非空值我在輸入獲得的數量情況。所以我在想,如果它是確定過載的字符串(最終值)與一個沒有差異的參數,並呼籲他們根據i的值獲得setter方法?這是一個糟糕的編程習慣嗎?Java的setter方法約定(是不是OK超載制定者?)

public void setFinalString(String a){ 
    this.finalString = a; 
} 

public void setFinalstring(String a, String b){ 
    this.finalString = a + " --f " + b; 
} 

或者,我可以構建基於輸入我得到的finalString,然後調用設置方法(無過載這裏)爲finalString的方法。

請告訴我是否確定過載制定者,表明這是一個更好的辦法?

感謝

+0

也許你可以發佈一個代碼示例? –

回答

4

是的,這絕對是一個不錯的辦法,一個setter總是應該只需設置傳遞參數封裝私人伊娃。

其他邏輯應該是別的地方沒有的二傳手,雖然它有時接受,當你設置的參數在你的二傳手即

public setAge(int age) { 
    if (age >= 0) 
     this.age = age; 
    else 
     this.age = 0; 
} 

有限制,這是作爲一個二傳手應該有儘可能多的邏輯,它絕對不應該得到比它分配給伊娃的價值更多的東西。

0

如果有人不允許覆蓋的方法,他應該把最終關鍵字。這是關於你想要做什麼以及你如何與其他開發者進行交流。有時只有溝通的方式是代碼和正確的方法簽名,不允許誤解。

阿布羅奇取決於你有什麼,儘量代碼放在一個理智的方式,想想你的類應該是什麼樣子,如果一些開發商想使用它們,不能問你的問題等。

如果你是幸運的(很幸運),他將達到同樣的方式:)

2

也許你想使用僞吸氣劑,而不是制定者?

private String a, b; 
public String setA(String a) { this.a = a; } 
public String setB(String b) { this.b = b; } 
public String getFinalString() { 
    if (a != null && b != null) 
     return a + " --f" + b; 
    if (a != null) 
     return a; 
    throw new Exception("Not enough parameters to construct final string"); 
} 
相關問題