在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
如果代码不是表示逻辑,那么这是不好的做法,因此应该不在控制器中。如果代码是表示逻辑,并且应该在控制器中,那么这是很好的做法。所以这一切都取决于做些什么和做些什么实际上是。 –
更新了我的问题。 –