2013-05-01 59 views
0

假設我正在創建MATH類,並且需要提供處理兩個數字的方法。 [單片方法 - 缺點

而不是提供每種可能的操作的方法的傳統機制,我提供了一個單一的方法評估:float eval(ArgObj);其中ArgObj是一個對象,它可以容納兩個數字和一個操作符。因此,現在只需一種方法就可以完成多項操作。

這種設計有什麼缺點?

兩個確定的缺點是維護和文檔,因爲eval可以處理更多的操作。

我在這裏錯過的其他缺點是什麼?

更新: 我試圖找出是一個大的整體方法的底片,上面的例子只是假設的另一個類似的例子是像

float doSomething(int basedOn)

一種方法,其中DoSomething的可以做一堆行動。

+0

鑄造和確定* ArgObj *實際上是什麼將一定是一個巨大的問題。過載怎麼樣? – 2013-05-01 16:07:57

+0

@PiotrJustyna真的,剛剛更新了問題,第一個例子你的觀點是非常有效的。 – 2013-05-01 16:19:59

回答

1

閱讀代碼應該是一個愉快的經驗,知道一種方法應該是明顯的。

您是否還想將英語語言縮減爲10個單詞?當然不是...

從使用良好且深受喜愛的API中學習,並確保您的API易於學習,易於使用且不易濫用。我建議doSomething不會接近。當你需要採取不同的行動時會發生什麼,你是否稱爲新方法doSomething2?希望你沒有看到這是一個可行的選擇......

+1

不要傻。顯然,新方法應該被稱爲'doSomethingElse'。 – jmbpiano 2016-06-16 05:16:36

+0

甚至dse? :) – 2017-04-27 15:41:43