Какое это место для NSFetchedResultsController в архитектуре VIPER?

В VIPER, в отличие от MVC, роль и место не так четко определены для NSFetchedResultsController.

Правильно ли разместить его на интеракторе?

2 ответа

Решение

Согласно этой статье, интерактор не должен знать, как сохранить сущности.

VIPER и архитектура, которая использует NSFetchResultController, - это разные подходы. В VIPER нет подходящего места для NSFetchResultController.

VIPER хорош для больших приложений, поскольку он обеспечивает хорошо изолированные слои архитектуры.

NSFetchResultController хорош для небольших приложений, поскольку помогает быстрее развиваться.

NSFetchedResultsController - это специфический для Core Data способ наблюдения за изменениями в базе данных. Это популярный шаблон, который можно использовать в большинстве мобильных систем баз данных.

Можно использовать этот вид наблюдения на уровне абстракции базы данных, поэтому, если мы возьмем полную архитектуру VIPER мобильного приложения, она может быть реализована под Interactor. Согласно принятому ответу, его не следует помещать в Interactor, потому что Interactor не должен знать о типе локальной базы данных, которую он использует. Хотя я не могу придумать ничего против использования этого на уровне базы данных.

Другие вопросы по тегам