2016-03-04 148 views
1

我是java程序設計新手,目前我正在開發一個命令閱讀程序(基本上用戶鍵入一個命令,我的程序會評估要執行什麼操作)。我有一個單獨的類包含我所有的命令,但它們存儲爲方法,並不總是使用動詞作爲名稱。我明白習慣上把方法存儲爲動詞。我使用的方法是否錯誤,是否有更好的方法來存儲我的命令?每個命令都有單獨的課程?調用我的方法實例一:方法名稱總是必須是動詞嗎?

else if (command[0].equals("math")) Commands.math(); 
+0

根據[Java文檔](http://www.oracle.com/technetwork/java/codeconventions-135099.html)*方法應該是動詞,首字母小寫的混合形式,第一個字母每個內部詞的大寫*。因爲方法實際上表示處理定義/實現的類的行爲的動作,所以應該使用動詞。例如,你應該明白你的'數學'命令做了什麼,把它翻譯成一個動作,然後從那裏轉化爲具體化動作的動詞。 – aribeiro

+0

Java API包含許多名稱不是動詞的方法:Math.sin,LocalDate.of,Collections.singleton()。一般來說,指導方針是,如果方法的目的是爲了某事,它應該是一個動詞;如果它的目的是要返回一個值,它應該是一個名詞或一個形容詞。 –

回答

2

方法名必須是動詞嗎?

就Java語言(即Java編譯器)而言,沒有。語言規範只要求您遵循一些有關使用什麼字符的規則以及關於上下文唯一性的規則。

典型的Java風格指南不需要要求方法名稱是動詞。但他們通常推薦這個。 (請注意,這不是一件自動風格檢查檢查,因爲可靠區分名詞和動詞的困難。)

我明白,這是存儲爲動詞習慣有方法。

這是一個更好的表徵。

這實際上是面向對象的設計。設計中的類映射到Java類,Java方法表示設計類上實例的操作。對於類使用類名詞標識符和對方法使用類似動詞的標識符是「自然的」(習慣)。

但它不是一個要求。


在你的榜樣,你可以簡單地用「doMath」作爲方法名,解決了困境。這是一個動詞短語。 (雖然「do xyz」是一個常用的約定,儘管它不會「讀取」得很好。)

但是,看起來好像可以,並且可能應該避免將命令名拼接到方法中名。看一下「命令」設計模式:從長遠來看,設計模式是您需要學習的東西,但對於初學程序員來說,它們可能太多了,無法消化。

+0

我給了它我最好的,我想附上一些代碼讓你看看。我可以在原始問題中編輯以供查看嗎? –

+0

不要。如果您對代碼有真正的疑問,請將其作爲一個新問題。如果您只是要求進行代碼審查,請在http://codereview.stackexchange.com/上提問。 –

-1

爲了讓更多的面向你可以考慮使用抽象類Command對象,並延長其作爲類

+0

我應該讓包含主要方法摘要的類? –

+0

不,你可能會提取數學函數MathCommand類 – luk

0

在這種情況下separe類,你應該把所有的方法相同的類,但除此之外,您正在正確使用方法。

我是一名Java程序員,我從來沒有聽說過動詞習慣。但是,如果您想遵循它,則方法名稱的一些建議是doMath()calculateMath()或類似的。

另外,你應該不是按類分裂的方法。通常,如果您打算實例化不同類的對象,則只應使用多個類。把每種方法放在一個單獨的類中是非常荒謬的。

+0

我實際上正在考慮按課分裂他們,因爲數學命令將有不同的功能(基本操作,求解方程),但如果我可以把方法裏面的方法... –

+0

你可以在每個類中放置多個方法。我不會推薦將所有代碼放在一個方法中,但我強烈建議將所有代碼放在一個類中。 – XeroOl

相關問題