考虑Uncle Bob's Clean Architecture(或洋葱架构)
假设我在我的应用中已登录User
,我会收到一个深层链接网址"myapp://events/[event_id]"
(例如,通过短信)。
当我点击链接并在屏幕上显示Event
的信息时,我想加入Event
。
这个过程是这样的:
event_id
event_id
应用检索Event
的信息Event
信息当应用程序发送POST请求加入事件时,它会发送current_user
的id,该ID由后端处理(我使用Parse进行Facebook登录)。这意味着所有用户身份验证都由Gateway
处理(解析current_user
的ID以PFUser
的形式出现,但是对于其他一些实现,它可能是{{} 1}},所以它必须由String
来处理。
我的问题是,整个互动(加入Gateway
)是由Event
还是Gateway
处理?
Interactor
处理所有这些过程似乎更符合逻辑:Interactor
event_id
添加到current_user
Event
在本地保存Gateway
Event
处理,则表示此Interactor
需要有关Interactor
的知识(如果我正在使用Parse),并且会如果我停止使用Parse(我会),我必须改变它的实现。PFUser
处理,则表示Gateway
只会将Interactor
来电转发至join
Gateway
)。答案 0 :(得分:0)
您的网关不应该有任何业务逻辑,将您的逻辑保留在交互者内部 并仅将网关作为边界处理,从它的名称来看,它是网关,它应该只指向您的交互者,以防您添加任何逻辑,那么您就违反了单一职责原则