gpt4 book ai didi

ios - 整洁架构 : Interactor logic on the server

转载 作者:行者123 更新时间:2023-11-29 11:57:07 27 4
gpt4 key购买 nike

我一直在研究 Clean ArchitectureVIPER .

昨天有 friend 问我为什么不把Interactor服务器上的逻辑,只需将处理后的数据同步到 iOS 客户端,而不是在 Interactor 上发送原始数据和处理.这会有很多好处,因为能够随意更改逻辑,减少在多个客户端(例如 iOS 和 Android)上复制的代码等。

举个例子,假设我们有一个列表 Profile s 和 Post 的列表秒。每个帖子都有一个图像和一个 profileID。

假设我们想要一个显示包含所有帖子图像的表格 View 的屏幕,当用户点击帖子时,我们会在单独的屏幕上显示相应的个人资料。在个人资料中,我们会显示姓名和该个人资料发布的所有图片。

如果我们将逻辑留在客户端,我们将像这样同步数据:

{
profiles: [
{
id: "...",
name: "..."
},
...
],
posts: [
{
profileID: "...",
imageURL: "..."
}
]
}

然后我们会有一个ShowPostsInteractor那只会返回所有帖子的数据和一个ShowProfileInteractor ,它将过滤帖子的数据以仅从该配置文件中获取帖子,然后它将一些数据返回到 View ,如:

{
name: "...",
imageURLs: ["...", ...]
}

第二种选择是将此逻辑留在服务器上,在这种情况下,同步数据将是:

{
profiles: [
{
id: "...",
name: "...",
imageURLs: ["...", ...]
},
...
],
posts: [
{
profileID: "...",
imageURL: "..."
}
]
}

(注意在imageURLs中增加了profiles)

还有 ShowProfileInteractor只会将配置文件数据原样传递给 View ,因为它不再需要过滤帖子(这是由服务器完成的)。

当然,第二种方法会复制一些数据,但由于它只是字符串,所以这不是很相关。

我看到第一种方法被更频繁地使用。所以我的问题是,为什么我不采用第二种方法(在服务器上保留尽可能多的逻辑)并且可能从客户端移除所有交互器,让 Controller 直接访问网关,因为不会处理数据?

最佳答案

我可能是错的,但我不认为 Clean Architecture 是为移动或 SPA 应用程序设计的。我一直认为它是一个很好的以老式网络应用程序为中心的东西,在服务器端有交互器。

理由是架构应该是

Independent of UI. The UI can change easily, without changing the rest of the system. A Web UI could be replaced with a console UI, for example, without changing the business rules

在我看来,将交互器推送到客户端会破坏该目标。

关于ios - 整洁架构 : Interactor logic on the server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38598990/

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