의존성

class AClass {
	var value = 0
}
class BClass {
	var aClass: AClass
	init(aClass: AClass) {
		self.aClass = aClass
	}
}

B 클래스 내부에서 A클래스를 변수로 사용함으로써

B 클래스는 A 클래스에 의존관계가 생깁니다.

A가 바뀔때 B도 바뀔 수도 있을때 의존성이 있다고 표현.

즉, 변경에 의해 영향을 받는 것이 의존성이다.

의존성 주입

내부가 아닌 외부에서 객체를 생성하여 넣어주는 것

let a = AClass()
let b = BClass(aClass: a)

의존성 주입은 의존성을 분리시켜 사용한다.

의존성 분리

의존성 분리란

상위계층이 하위계층에 의존하게 되는 상황에서

의존관계를 반전시켜서 하위 계층의 구현으로 부터 독립하게 됩니다.

방법은 간단합니다. Interface를 사용하는 것이지요.

iOS에서는 protocol을 이용합니다.

의존관계 역전 원칙

객체 지향 프로그래밍에서 의존관계 역전 원칙은 소프트웨어 모듈을 분리하는 특정 형식을 지칭한다.

이 원칙을 따르면,