0
我明白,一種方法應該有效地服務於一個單一的目的。但是,如果我的方法(也充當API)被命名爲execute()呢?設計:一個方法應該做多少?
所以東西是這樣的:
void execute() {
/* some steps to initialize stuff */
List<String> dataToBeExecuted = mainClass.getData();
/* initialization ends */
/* steps to actually execute data */
for(...) {
try {
/* generate args to be passed to executeData() */
otherClass.executeData(args.. , dataToBeExecuted);
} catch {
/* log stuff */
}
}
/* execution ends */
/* steps to do some validation */
}
好了,現在這個功能本身是做三件事情,
* initialize stuff * execute Data * validate stuff
它可以細分爲3種方法,但我認爲,因爲邏輯足夠簡單,它可以保存在父級execute()方法中。
什麼是正確的方法?
即使你的邏輯現在已經足夠簡單了,但它明天可能會改變,所以例如驗證步驟變得很大。你可能希望在3種方法中分裂init,執行和驗證(如果外部不需要它們,可能會有私有的可見性),並創建一個名爲更通用的過程(process?),它可以完成3個方法。 – 2015-02-24 12:59:38