Swift - DI 패턴

JSLee·2022년 5월 23일
0

DI 패턴(Dependency Injection)

디펜던시인젝션 즉 DI 는 의존성 주입을 말합니다.

프로그래밍에서는 레퍼런스 타입이 서로 상속, 생성을 통하여 의존성이 생기게 됩니다.

여기서 DI 패턴을 사용하게 되면 의존성에 대하여 조금더 탁월한 방법으로 접근 가능하게 됩니다.

장점으로는

  • 재사용성이 높습니다.
  • 테스트 하기 용이 합니다.
  • 코드가 단순해 집니다.
  • 종속적인 코드가 줄어듭니다.
  • 가독성이 올라갑니다.
    등등 장점이 많습니다.

간단한 예제를 통해 알아보겠습니다.

class A { 
	var name = String
}

class B { 
	var internalValue = A()
}

let b = B() 
print(b.internalValue)

위 예시 코드 처럼 B class 에서 A class를 생성하게 되면
B 는 A 에 의존관계가 생기게 됩니다.

여기서 DI (의존성 주입) 의 경우는

class A { 
	var name = String
    
    init(name: String) { 
    	self.name = name
    }
    
    func setName(name: String) { 
    	self.name = name
    }
}

let b = B(name: String("이름"))
print(b.name)

b.setName(name: String("또하나의이름"))
print(b.name)

이런식으로 외부에서 객체를 생성하여 주입하는 것을 말합니다.

의존성 + 주입의 경우는

class A { 
	var name = String
}

class B { 
	var internalValue: A
    
    init(internalValue: A) { 
    	self.internalValue = internalValue
    }
}

let b = B(internalValue: A()) 
print(b.internalValue.name)

이런식으로 객체를 외부에서 생성후 멤버변수에 대입시킬수 있습니다.

profile
iOS/Android/FE/BE

0개의 댓글