Dependency Injection

의존성 주입

개선된 의존성: 프로토콜을 사용해서 의존성을 분리시키고, 의존관계를 역전(Inversion Of Control) 시킴

주입: 생성자를 통해서 외부에서 값을 주입한다.(생성시 값 할당 가능 / 언제든지 교체 가능해져 확장성이 늘어남)

class A {
	var name : String = "A"
}

class B {
	var name: String = "B"
}

class C { 
	// A에 대한 의존성이 생긴다.
	**var a: A = A()**

func printName() {
		print(a.name)
	}
}

**주입의 개념
class Person {
	var name: String
  
	init(name: String) {
			self.name = name
  	}
}

// 외부에서 값을 주입(할당/초기화)해서 인스턴스 생성
let p1 = Person(name: "뉴진스")**

의존성 주입의 장점 / 사용하는 이유

객체지향 프로그래밍(OPP)의 5대 원칙(SOLID) 중

하나가 의존 관계 역전 원칙(DIP: Dependency Inversion Principle) 의존 관계의 분리