Constructor Injection
Pass dependencies through initializers.
Constructor Injection
The most common DI style passes dependencies through an initializer. The object receives everything it needs at creation time and stores them.
A Basic init
Declare a stored property and assign it in init. Callers must supply the dependency to create the object.
struct Greeter { func hi() -> String { "Hi" } }
struct View {
let greeter: Greeter
init(greeter: Greeter) { self.greeter = greeter }
func show() { print(greeter.hi()) }
}
View(greeter: Greeter()).show()All lessons in this course
- Why Dependency Injection
- Constructor Injection
- Protocol-Based Abstractions
- Mocking Dependencies in Tests