본문 바로가기

C#

DI(의존성 주입) 사용하는 이유

728x90

DI는 Singleton의 단점을 해결하기 위한 패턴이다.

Singleton의 장점이 무엇이냐고 하면 일단 객체를 한 번 생성해서 계속적으로 재 사용하여 성능과 가독성을 아끼는 패턴이다. 많은 프로그램에서 가장 즐겨쓰는 패턴이 아닐까 싶다.
그러나 Singleton의 치명적인 단점은 생성자가 private라는 것이다. 즉, 상속이나 확장이 불가능한 패턴이다.

왜냐하면 Singleton의 class 를 상속받으면 생성자가 private이기 때문에 상속받은 클래스는 생성자를 만들 수 없다. 생성자가 없는 클래스는 존재하지 않는다.
이런 단점이 있기 때문에 프로그램에서 Dao(Database access object)의 경우응 커넥션 제어를 위해 Singleton을 만드는게 유리하지만 확장성이 용이하지 않기 때문에 Singleton을 만들지 못한다.
Singleton이 되지 않으면 유저들이 무분별하게 Dao를 생성할 수 있기 때문에, 리소스의 관리가 어려워진다.

이런 단점을 해결하기 위해 고안된 패턴이지 않을까 싶다.

[출처]
https://nowonbun.tistory.com/485

728x90

'C#' 카테고리의 다른 글

IoC(Inversion of Control; 종속성 반전)  (0) 2023.01.26
.NET에서 종속성 주입  (1) 2023.01.26
DI(Dependency Injection, 의존성 주입)  (0) 2023.01.25
TableLayout에서 Label Ellipsis 사용하기  (0) 2023.01.25
[암호화] 용어 정리  (0) 2023.01.23