Skip to content

Instantly share code, notes, and snippets.

@stevencurtis
Created June 12, 2020 16:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevencurtis/0b1c56e6cfd49704cc57448dfd120bde to your computer and use it in GitHub Desktop.
Save stevencurtis/0b1c56e6cfd49704cc57448dfd120bde to your computer and use it in GitHub Desktop.
DependencyFactory
class DependencyFactory: Factory {
func makeInitialViewController(coordinator: ProjectCoordinator) -> InitialViewController {
let viewModel = makeInitialViewModel(coordinator: coordinator)
let initialViewController = InitialViewController(coordinator: coordinator, viewModel: viewModel)
return initialViewController
}
var networkManager: HTTPManagerProtocol = HTTPManager()
func makeInitialCoordinator() -> ProjectCoordinator {
let coordinator = ProjectCoordinator(factory: self)
return coordinator
}
func makeInitialViewModel(coordinator: RootCoordinator) -> InitialViewModel {
let viewModel = InitialViewModel(coordinator: coordinator, networkManager: networkManager)
return viewModel
}
}
extension DependencyFactory {
func makeDetailView() -> DetailView {
let view = DetailView()
return view
}
func makeDetailViewModel(coordinator: RootCoordinator) -> DetailViewModel {
let viewModel = DetailViewModel(coordinator: coordinator, networkManager: networkManager)
return viewModel
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment