Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.01 KB

DI.md

File metadata and controls

32 lines (24 loc) · 1.01 KB

DI란?

  • 의존성 주입

의존성 주입이 뭐지?

  • DI 라고도 하면 객체 지향 프로그램을 할 때는 빼 놓을 수 없는 중요한 부분입니다.
  • 복잡한 개발을 하면 할 수록 의존성이 생길 수 있습니다.
class User {
     var game = Game()

     func startGame() {
            self.game.start()
    }
}

위 코드에서 User와 Game 사이 결합도가 증가하고 의존성이 생깁니다.

의존성은 왜 생기면 안될까?

  • Game을 바꾸면 Game과 startGame의 결합된 모든 것을 바꾸어야함
  • 코드의 재사용성이 떨어짐
  • 이게 DIP 의존성 역전 법칙의 위배됩니다.
  • DIP를 위배하지 않으려면 의존 시 클래스 보다는 인터페이스 혹은 추상 클래스와 관계를 맺어야합니다.

의존성 주입을 하면 이점이 무엇일까?

  • 코드의 재사용성이 높아집니다
  • 테스트가 편리해집니다.
  • 코드의 유연성이 크게 증가합니다.
  • 코드 분성 및 파악 용이