iOS:在ViewModel(来自MVVM)和Presenter(来自MVP)中使用UIImage

Sla*_*hyn 5 architecture mvp design-patterns mvvm ios

我试图找出MVVM和MVP架构设计。我决定用不同的设计方法编写简单的一屏应用程序。

关于示例应用程序的几句话:

  • 这是一个简单的图像加载器
  • 流程:使用500像素以下的图片加载JSON- >显示单元格UICollectionView取决于返回的JSON中的图片数量->逐步下载图片并将其显示在单元格中
  • 我正在3种架构设计下实现的相同应用程序MVVMMVC以及MVP

一切进展顺利,直到我需要下载图像并显示它们为止。

起初我一直认为虽然处理这个逻辑和缓存的图片最好的地方是ViewModel(从MVVM)和Presenter(从MVP),但据我所知这两个实体应该是独立的UI层,但如果我们要使用UIImage有它意味着我们应该import UIKitViewModel/Presenter

所以,问题

  1. 我可以import UIKitViewModel/中使用Presenter吗?
  2. UIImage在此UIViewControllerViewModel/ Presenter或其他方面, Load&Store的最佳位置是什么?

示例应用程序上的GitHub链接

MVVM图 MVP图

AJ *_*J B 5

为什么不使用图像数据而不是使用UIImage对象?这样,您就可以对数据进行缓存和逻辑处理,然后在需要时转换为UIImage对象。因此,唯一使用UIImage的时间是在UIViewController中,将数据转换为UIImage。