🤔 < Dependency Injection ? >
Object간의 관계를 정의하며, 관계에 의해 필요한 객체를 제공하는 것.
예를 들어, Service Class가 Repository Class를 사용할 때, Service Class는 Repository Class에 대한 의존성이 생긴다.
이런 의존성을 줄이는 방법 중 하나가 바로 "Dependency Injection" 이다.
🔥 < Dependency Injection Code in Java >
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
public void doSomething() {
repository.performAction();
}
}
위의 Code에서 Service Class는 Repository Class의 performAction() method를 사용한다. 이 method는 Repository Class에서 구현된다.
public class Repository{
public void performAction() {
//..
}
}
이제 Service Object를 생성할 때, Repository 객체를 생성자에게 전달해주면 된다.
Repository repository = new Repository();
Service service = new Service(repository);
service.doSomething();
이렇게 하면, Service Class는 Repository Class의 기능을 사용할 수 있다. 이것이 바로 Dependency Injection의 개념이다.
🤔< Dependency Injection의 장점 ? >
DI를 사용하면 코드의 재사용성,테스트 편의성,유연성이 향상된다. 특히 클래스 간의 의존성을 줄이므로 테스트와 리팩토링이 수월해진다.
Reference : Martin Fowler의 Dependency Injection
Wikipedia: Dependency Injection
'Java' 카테고리의 다른 글
GUI(Graphical User Interface) (0) | 2023.04.04 |
---|---|
Exception Handling (0) | 2023.04.04 |
프로그래밍 언어와 자바 (0) | 2023.04.03 |
JAVA IllegalStateExecption (0) | 2023.04.03 |
java UncheckedException nullpointerexception (0) | 2023.04.03 |