iOS:在 ViewModel(来自 MVVM)和 Presenter(来自 MVP)中使用 UIImage
iOS: Use UIImage in ViewModel(from MVVM) and in Presenter(from MVP)
我正在尝试弄清楚 MVVM 和 MVP 架构设计。我决定用不同的设计方法编写简单的单屏应用程序。
关于示例应用的几句话:
- 这是一个简单的图片加载器
- 流程:使用来自 500px 的图片加载 JSON -> 根据返回 JSON 中的图片数量显示
UICollectionView
中的单元格 -> 逐渐下载图片并显示在单元格中
- 我在 3 种架构设计下实现的相同应用程序
MVVM
、MVC
和 MVP
一切都很顺利,直到我需要下载图像并显示它们。
最初我认为处理此逻辑和缓存图片的最佳位置是 ViewModel
(来自 MVVM
)和 Presenter
(来自 MVP
)但是 AFAIK 这两个实体应该独立于 UI 层,但是如果我们想在那里使用 UIImage
这意味着我们应该 import UIKit
in ViewModel
/Presenter
所以,问题
- 我可以在
ViewModel
/Presenter
中使用 import UIKit
吗?
- 在此
UIViewController
中加载和存储 UIImage
的最佳位置是什么,
ViewModel
/Presenter
还是别的?
GitHub link on sample application
为什么不使用图像数据而不是使用 UIImage 对象?这样你就可以使用数据进行缓存和逻辑处理,然后在需要时转换为 UIImage 对象。因此,您唯一一次使用 UIImage 将是在 UIViewController 中将数据转换为 UIImage。
我正在尝试弄清楚 MVVM 和 MVP 架构设计。我决定用不同的设计方法编写简单的单屏应用程序。
关于示例应用的几句话:
- 这是一个简单的图片加载器
- 流程:使用来自 500px 的图片加载 JSON -> 根据返回 JSON 中的图片数量显示
UICollectionView
中的单元格 -> 逐渐下载图片并显示在单元格中 - 我在 3 种架构设计下实现的相同应用程序
MVVM
、MVC
和MVP
一切都很顺利,直到我需要下载图像并显示它们。
最初我认为处理此逻辑和缓存图片的最佳位置是 ViewModel
(来自 MVVM
)和 Presenter
(来自 MVP
)但是 AFAIK 这两个实体应该独立于 UI 层,但是如果我们想在那里使用 UIImage
这意味着我们应该 import UIKit
in ViewModel
/Presenter
所以,问题
- 我可以在
ViewModel
/Presenter
中使用import UIKit
吗? - 在此
UIViewController
中加载和存储UIImage
的最佳位置是什么,ViewModel
/Presenter
还是别的?
GitHub link on sample application
为什么不使用图像数据而不是使用 UIImage 对象?这样你就可以使用数据进行缓存和逻辑处理,然后在需要时转换为 UIImage 对象。因此,您唯一一次使用 UIImage 将是在 UIViewController 中将数据转换为 UIImage。