Я разрабатываю новый проект с нуля, и есть некоторые понятия об этой архитектуре, которые я хотел бы реализовать наилучшим образом.
Во многих ссылках в Интернете я вижу несколько примеров, связанных с архитектурой Clean Swift. В этой архитектуре вы можете обнаружить, что Interactor
имеет зависимость Worker
classes
protocol InteractorLogic {
// Functions
}
class Interactor: InteractorLogic {
var presenter: PresenterLogic?
var worker: AWorker?
}
У меня есть сомнения относительно реализации этого Worker
, потому что я видел в некоторых примерах, что внутри этого Worker
они помещают все "варианты использования", связанные со сценой:
protocol SceneWorkerLogic {
func getPosts(success: ((Posts) -> Void), error: ((Error) -> Void)))
func getUser(success: ((User) -> Void), error: ((Error) -> Void)))
}
class SceneWorker {
func getPosts(success: ((Posts) -> Void), error: ((Error) -> Void))) {
}
func getUser(success: ((User) -> Void), error: ((Error) -> Void))) {
}
}
и в других примерах они делят функциональность на разные Workers
, такие как UserWorker
и PostWorker
, где реализованы функции CRUD, связанные с Users
и Posts
:
protocol PostWorkerLogic {
func getPosts(success: ((Posts) -> Void), error: ((Error) -> Void)))
}
class PostWorker {
func getPosts(success: ((Posts) -> Void), error: ((Error) -> Void))) {
}
}
Я считаю, что второй подход лучше с точки зрения Clean Code
, но я понял, что он может быть еще чище, если мы используем файл для одной операции CRUD, такой как getUser
или getPosts
.
Как я могу улучшить это?