1. 의존성 주입이란
Dependency Injection
dependency injection : 의존성 주입1. 의존성 주입이란의존하고 있는 클래스의 객체를 멤버변수로 사용하는 것이다. 2. 의존이란특정 클래스에 의지를 하고 있는 상태이다. 예를들면 "나"라는 클래스
halo-server.tistory.com
2. 의존성 주입 원칙 3가지
가. 의존성은 외부에서 주입받자
나. 의존성 역전 원칙 (DIP)
유연한 클래스 생성자 파라미터 사용을 목적으로 의존성 주입 코드 작성 시, 생성자 파라미터는 인터페이스 객체로 설정한다. 이것을 DIP, Dependency Inversion Pricipal 을 따른다고 한다.
D : 의존성
Inversion : 역전, 옛날에는 상위 모듈이 하위 모듈(의존하던 모듈)에 의존했다면 의존성 주입을 사용하면, 둘다 추상화에 의존한다는 것
Principal : 규칙
interface Animal{
void sound(); // 보통 public 으로 명시
}
class Dog implements Animal{
public void sound(){
System.out.println("멍멍");
}
}
class Cat implements Animal{
public void sound(){
System.out.println("야옹");
}
}
class AnimalShop{
// Animal animal = new Dog();
private final Animal animal;
AnimalShop(Animal animal){
this.animal=animal;
}
[DIP 예시]
다. 단일 책임 원칙(SRP)
클래스 객체 혹은 인터페이스 객체를 파라미터로 받아서 단일책임 원칙을 수행
아래는 예시
public class User {
private String name;
private String email;
// 사용자 자체 정보만 담음
public User(String name, String email) {
this.name = name;
}
}
public class UserRepository {
public void save(User user) {
// DB 저장 로직
}
}
public class EmailNotifier {
public void sendEmail(User user) {
// 이메일 발송 로직
}
}
[SRP 예시]
'CS knowledge > Design Pattern' 카테고리의 다른 글
| 전략 패턴 (1) | 2025.07.24 |
|---|---|
| SingleTon And Factory Pattern (1) | 2025.07.22 |