Slide 37
Slide 37 text
Swinjectͷ͍ํ
// جຊߏ: ܕ͝ͱʹΫϩʔδϟΛregister͢Δ ! ͦΕΛresolveͰݺͿ
defaultContainer.register(DateRepositoryProtocol.self) { _ in DateRepositoryImpl() }
// ΫϩʔδϟͷୈೋҾҎ߱Ͱɺresolve࣌ʹ͏ҾΛࢦఆ͢Δ͜ͱͰ͖Δ
defaultContainer.register(UseCase.self) { (r: Resolver, clock: Clock) in
UseCase(dependency: .init(
dateRepository: r.resolve(DateRepositoryProtocol.self)!, // άϥϑͷղܾ
clock: clock
))
}
defaultContainer.register(Presenter.self) { (r: Resolver, clock: Clock) in
Presenter(dependency: .init(
useCase: r.resolve(UseCase.self, argument: clock)!
))
}
37