如何解决控制器输入错误时会发生什么?是否应该将错误的输入传播到UseCaseInteractor?
据我在Clean Architecture中所了解的,接口适配器层中的对象使适应于应用程序的核心,以适应可能的不同基础架构。这样,应用程序的核心可以从不同的来源(例如HTTP请求和控制台命令)获取输入。
通常,Controller
接受输入,Presenter
接受输出,因为控制器是适配器,所以可能需要将给定的输入转换为{{1 }}。在这种情况下,当控制器输入错误时会发生什么?由于输出是由Presenter提供的,它如何告诉客户发生了错误?
编辑:
更好地考虑,Use Case Interactor
应该不在乎输入是否有效,即使需要将无效输入转换为另一个无效输入,它也应尝试始终进行转换。 Controller
应该总是返回有意义的响应,它不应将异常传播给调用者。因此,当UseCaseInteractor
收到错误的输入时,它只是将错误的输入发送到被调用的交互器,该交互器随后可以正确处理错误的输入(这是应用程序逻辑)并通过其演示者显示错误消息。对于控制器输入的输入,它的工作是尽可能地适应 ,对吗?
解决方法
您在“编辑”中找到了它。实际的输入验证应在用例交互器中的业务逻辑上进行。控制器执行“简单”的数据转换。
示例:视图发送一个日期字符串。控制器尝试将其转换为Date对象。在输入字符串不是有效日期格式的情况下,控制器将该信息传递给用例交互器,例如。为null或功能语言中的选项或任何其他类型(使用例交互器清楚输入日期无效)为null。然后,用例交互器决定如何处理此输入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。