gpt4 book ai didi

ios - Bob 叔叔的清洁架构上的建模用例

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:50 24 4
gpt4 key购买 nike

考虑Uncle Bob's Clean Architecture (或洋葱架构)

我有以下场景:

  • 我想向用户展示一个地方的信息:名称、类别、坐标。
  • 我还希望在同一个屏幕上有一个按钮,点击该按钮后会重定向到显示该地点位置的 map 应用。

要重定向到 map 应用程序,有一个简单的框架 API 可以接收坐标。

对于第一个问题,我应该有一个 RetrievePlaceInformationInteractor(用例),它会接收地点 ID 并返回名称、类别和坐标。

但是对于第二个问题,我不知道是否应该:

  • 有一个单独的 OpenPlaceInMapInteractor(用例),它将接收地点 ID 并返回坐标,供 Presenter 中的框架 API 使用。
  • 有一个单独的 OpenPlaceInMapInteractor(用例),它会接收地点 ID 并使用该框架 API 重定向到 map 应用。
  • 使用相同的 RetrievePlaceInformationInteractor 获取坐标并将其填充到回调中,调用框架 API,当单击 OpenInMap 按钮时调用。

第一个看起来有点愚蠢,因为它本质上是一个交互器,只是为了检索一个属性,而另一个交互器已经在检索该属性。

第二个强制 OpenPlaceInMapInteractor 访问框架 API,这有点违背交互层不访问上述层的目的(当然,我可以为 API 使用协议(protocol)并使用依赖注入(inject),但我仍然依赖于特定于框架的功能)。

第三个似乎是合理的,但我不会在一个中实现 2 个用例吗?

我该怎么办?

谢谢。

最佳答案

在用例层实现一个RetrievePlaceInformationInteractor和一个OpenPlaceInMapInteractor,它们都在内部从数据访问层调用getPlaceDetails,这是您想要反转依赖关系的位置,以便 DB 层依赖于用例。

这样您就不会重复自己,您可以为两个用例中的每一个分配适当的名称。您将它们彼此分开是正确的,因为它们不相同,因为它们返回地点详细信息的不同部分。

关于ios - Bob 叔叔的清洁架构上的建模用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com