- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑Uncle Bob's Clean Architecture (或洋葱架构)
我有以下场景:
要重定向到 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/
考虑Uncle Bob's Clean Architecture (或洋葱架构) 我有以下场景: 我想向用户展示一个地方的信息:名称、类别、坐标。 我还希望在同一个屏幕上有一个按钮,点击该按钮后会重定
因此,当我将php与MySQL结合使用时,我只是这样做了: $result = $mysqli->query("SELECT * FROM table WHERE person='Bob'"); 我现
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
一周前,我观看了 Robert C. Martin 关于架构的演讲: http://www.youtube.com/watch?v=WpkDN78P884 我不明白您在 0:24:46 看到的图表。我
注意:这是对 SWF 文件中有关排序记录的现实问题的抽象改写。解决方案将帮助我改进开源应用程序。 Bob 有一家商店,他想打折。他的商店有许多产品,并且他有一定数量的每种产品的库存。他还有一些货架上的
我想知道我是否在使用 Clean Architecture正确的方式。我试图像这样放置它: 我读到包结构应该按用例排列,但我很难理解如何做到这一点。 让我们看看我的包结构: 请注意,我不知道将 Act
考虑 Uncle Bob's Clean Architecture (或洋葱架构) 假设作为我应用程序中的登录用户,我收到了一个深层链接 url “myapp://events/[event_id]”
Bob Jenkins 哈希函数是否有不区分大小写的变体? Generics.Defaults.BobJenkinsHash 提供快速哈希函数。不幸的是,它不能与不区分大小写的比较函数结合使用,如下所
我正在使用 jquery 在 LI 悬停时隐藏/显示 DIV。当我这样做时,div 出现了,但不停地上下弹出,直到我将鼠标从 LI 上移开。 $(document).ready(function ()
好吧,这看起来有点奇怪,但是当我尝试在 PHP 代码或 phpmyadmin 中运行 mysql 查询时,它不会返回任何内容: DELETE FROM `EmployeeNames` WHERE Fi
我已经在 CentOS 和 Python 级别上安装了所有必要的依赖项,并且认为我已经接近完成,但这就是我最后得到的。现在我不知道如何让它发挥作用。 Installed /tmp/easy_insta
这个问题在这里已经有了答案: String count with overlapping occurrences [closed] (25 个答案) 关闭 9 年前。 s = 'gfdhbo
我正在尝试使用通过 Conda 安装在我的 ubuntu 上的 bob 包;但是,在使用诸如 bob.measure.eer_threshold 之类的任何测量 API 时,会出现以下错误。我已经准备
Bob推荐其用户到install它的包使用conda , 但我不想使用 conda .如何从源代码安装它? 最佳答案 解释 首先,使用 conda 安装 Bob 要容易得多,并且是安装 Bob 的受支
考虑我在 hackerrank 上发现的这个问题: Coins Problem Alice and Bob were sitting in the sun; drinking orange juice
我想将数组元素传递给 bob bob.string.formatString 格式字符串,以便我可以传递任意数量的参数,并且它将自动填充占位符中所需的参数。这是我尝试过的。 var string =
如果我想从下面的字符串中提取值,正确的正则表达式(我可以在 Java 中使用)是什么? 我知道\将提取尖括号之间的所有内容,但我只需要提取“bob”。 字符串中唯一会改变的部分是“bob”。我还想确
在第 2 章:有意义的名称中,Bob 叔叔写道: Don't Add Gratuitous Context In an imaginary application called "Gas Statio
我正在构建一个 Bloom 过滤器并查看要使用的哈希值和 Bob Jenkins' hash由于分布均匀,这似乎是一个不错的选择。我将给定的 C++ 代码改编为 Go(可能犯了一个错误,但它似乎有效)
考虑: 用例层定义了一个接口(interface) public interface IGeocoder { Coordinate GetCoordinate(Address address)
我是一名优秀的程序员,十分优秀!