Skip to content

Instantly share code, notes, and snippets.

@dcarmo-tribalscale
dcarmo-tribalscale / DependencyContainerV1.swift
Last active March 3, 2023 22:24
Dependency Injection Blog
// 1
public protocol DIContainer {
func register<DependencyType>(type: DependencyType.Type, dependency: DependencyType)
func resolve<DependencyType>(type: DependencyType.Type) -> DependencyType
}
// 2
public class DependencyContainer {
public static let shared: DIContainer = DependencyContainer()
private var registeredDependencies: [String: Any] = [:]
@dcarmo-tribalscale
dcarmo-tribalscale / DIContainer.swift
Last active August 15, 2022 15:10
Dependency Injection
import Foundation
// MARK: - ResolveMode
/// Allow you to choose how you'd like the dependency resolved
public enum ResolveMode {
/// Indicate that you'd like a new dependency created of that type or key requested
case new
/// Indicate that you'd like the global dependency of that type or key requested
case shared