考虑鲍勃叔叔的清洁建筑 (或洋葱体系结构)
我有以下情况:
要重定向到Map应用程序,有一个接收坐标的简单框架API。
对于第一个问题,我应该有一个RetrievePlaceInformationInteractor (用例),它将接收place id并返回名称、类别和坐标。
但对于第二个问题,我不知道我是否应该:
OpenPlaceInMapInteractor (用例),它将接收place并返回Presenter中该框架API要使用的坐标。OpenPlaceInMapInteractor (用例),它将接收place,并使用该框架API重定向到Map。RetrievePlaceInformationInteractor获取坐标并将其填充到回调中,该回调调用framework,当单击OpenInMap按钮时将调用该回调。第一个看起来有点愚蠢,因为它本质上是一个只为了检索一个属性的交互器,而这个属性已经被另一个交互器检索了。
第二个强制OpenPlaceInMapInteractor访问framework,这有点违背了交互层不访问上述层的目的(当然,我可以使用该API的协议并使用依赖项注入,但我仍然依赖于特定于框架的特性)。
第三个似乎是合理的,但我不是要在一个中实现两个用例吗?
我该怎么办?
谢谢。
发布于 2016-02-02 06:14:45
在用例层中实现一个RetrievePlaceInformationInteractor和一个OpenPlaceInMapInteractor,这两个层都从数据访问层内部调用getPlaceDetails,这就是您想要对依赖项进行反转的地方,因此DB层依赖于用例。
这样,您就不会重复自己,而是为这两个用例中的每一个指定正确的名称。你正确地让它们彼此分离,因为它们是不一样的,因为它们返回了不同的地方细节。
https://stackoverflow.com/questions/35144865
复制相似问题