반응형
의존성 주입(Dependency Injection)은 객체 지향 프로그래밍에서 사용되는 설계 원칙 중 하나로, 한 객체가 다른 객체를 생성하거나 사용할 때 직접적으로 의존성을 가지는 것이 아니라, 의존하는 객체를 외부에서 생성하여 주입하는 방식을 말합니다. 이를 통해 객체 간의 결합도를 낮추고 유연성과 재사용성을 높일 수 있습니다.
아래는 Java로 작성된 예시 코드입니다.
우선, 의존성을 주입받을 인터페이스를 정의합니다.
public interface MessageService {
void sendMessage(String message, String recipient);
}
그리고, 해당 인터페이스를 구현하는 클래스를 작성합니다.
public class EmailService implements MessageService {
public void sendMessage(String message, String recipient) {
System.out.println("Sending email to " + recipient + ": " + message);
}
}
이제 의존성을 주입받을 클래스를 작성합니다. 여기서는 생성자를 통해 의존성을 주입받는 방식을 사용합니다.
public class MessageSender {
private final MessageService messageService;
public MessageSender(MessageService messageService) {
this.messageService = messageService;
}
public void send(String message, String recipient) {
messageService.sendMessage(message, recipient);
}
}
여기서 MessageSender 클래스는 MessageService 인터페이스를 구현하는 클래스에 의존하며, 생성자를 통해 의존성을 주입받습니다. 마지막으로, 메인 함수에서 이를 사용해봅시다.
public class Main {
public static void main(String[] args) {
MessageService messageService = new EmailService();
MessageSender messageSender = new MessageSender(messageService);
messageSender.send("Hello, world!", "example@example.com");
}
}
위 예제에서는 MessageService 인터페이스를 구현하는 EmailService 클래스를 사용하여 의존성을 주입하였습니다. 이를 통해 MessageSender 클래스는 MessageService 인터페이스를 구현하는 어떤 클래스든지 사용할 수 있게 되었습니다.
반응형
'무근본 IT 지식 공유 > 무근본 자바(JAVA)' 카테고리의 다른 글
[무근본 자바] restapi patch 요청 테스트 중 : java.lang.NoClassDefFoundError 해결 방안 (0) | 2023.04.20 |
---|---|
[무근본 자바(Java) 공부] 자바에서 Map 자료구조는 언제 쓰일까? - 왕초보도 이해하는 자바 (0) | 2023.03.26 |
[무근본 자바(Java) 공부] Gradle이 대체 뭐야? - 왕초보도 이해하는 자바 (0) | 2023.03.26 |
[무근본 자바(Java) 공부] 메이븐(Maven)이 대체 뭐야? - 왕초보도 이해하는 자바 프로그래밍 기초상식 (0) | 2023.03.26 |
[무근본 자바(Java) 공부] 의존성 주입은 도대체 왜 필요한가? (0) | 2023.03.26 |
댓글