0Pricing
Swift Academy · Lesson

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

  1. Why Dependency Injection
  2. Constructor Injection
  3. Protocol-Based Abstractions
  4. Mocking Dependencies in Tests
← Back to Swift Academy