我正在學習Java以及學習代碼設計的書籍。Java:封裝方法中的if-return語句調用更清晰,更簡潔的代碼?
我想知道,是否有可能在Java中有一個if
語句封裝在一個方法調用,允許某人以某種方式退出父方法,如果boolean
爲假?
什麼我不知道的是,如果,如果我能在下面的代碼
public void addStock (String stock) {
boolean stockNameIsValid = testStringForValidStockName(stock);
if (stockNameIsValid == false){
JOptionPane.showMessageDialog(getParent(), "Invalid text entered. Stock ticker names may only include upper-case alphabetical letters.", "Invalid Text Entry Error", JOptionPane.ERROR_MESSAGE);
return;
}
boolean stockAlreadyExistsInPanel = testForStockExistenceInListingPanel(stock);
if(stockAlreadyExistsInPanel == true){
JOptionPane.showMessageDialog(getParent(), "The same stock cannot be entered twice into the list of stocks being watched.", "Redundant Stock Error", JOptionPane.ERROR_MESSAGE);
return;
}
controller.addStockToDb(stock);
}
進一步蒸成類似
public void addStock(String stock){
giveErrorAndReturnIfStockNameInvalid(stock);
giveErrorAndReturnIfStockCannotBeFound(stock);
controller.addStockToDb(stock);
}
我想知道如果這樣做,可能是因爲我的IDE可以將代碼進一步提取出來,然後讓代碼以上面的第二種方式形成,我認爲它會更好地交流意圖,並且比最初的例子具有更高的抽象層次。
我有這個想法,因爲我目前正在讀鮑勃叔叔的「清潔代碼」一書,裏面說,方法最終應該儘可能短,你可以讓他們。如果我在方法調用中封裝低級邏輯,那麼它會讓代碼反映更高級的邏輯。這使得代碼更易於理解,因爲它需要較少的開發人員的精神資源來獲取代碼的每個部分的一般概念。
這裏我的目標是消除讀者實際上不必分析代碼的實現細節,除非它是絕對必要的。因此,讀者不必閱讀整個方法來理解它,而是可以更加抽象地表示我的代碼的邏輯。
你可以拋出一個異常 – Stultuske
**不要在一個'boolean'比較'真'或'** FALSE'。 'if(x == true)'應該**總是**寫爲'if(x)'。明確比較不僅醜陋,而且還會出現錯誤 - 「if(x = true)'也會編譯(如果能告訴我它是什麼,則爲5分)。 –
@BoristheSpider另一方面,也應該不鼓勵使用'if(!x)'。因爲它不太可讀,有時你的思想錯過了複雜應用程序中這一行的*點*。如我錯了請糾正我。 –