在MVC模式中,我們正在開發一個REST
應用程序。在控制層寫入決策語句
服務層正在返回Optional<T>
其中T可以是任何類。
等REST
Controller
層有條件語句,測試結果是否爲Optional.empty
然後返回[]
否則返回實際數據。
return ABCService.getById("").map(send actual data).orElse(Collections.empty());
把這段代碼寫在控制層上是不好的做法?因爲我們不想返回null
。如果我們不在控制層使用這個條件,我們必須從服務層中刪除Optional
,我認爲這不是一個好習慣。
有人可以請解釋爲什麼添加上面的代碼不是一個好的做法,會有什麼後果?
「DO DO SOMETHING」和「DO SOMETHING ELSE」是* values *,它與'map'和'orElse'的意圖相符,而它們的內容暗示你實際描述了一個動作。 – Holger
如果代碼不是表示邏輯,那麼這是不好的做法,因此應該不在控制器中。如果代碼是表示邏輯,並且應該在控制器中,那麼這是很好的做法。所以這一切都取決於做些什麼和做些什麼實際上是。 –
更新了我的問題。 –