본문 바로가기
  • _^**_
무근본 IT 지식 공유/무근본 자바(JAVA)

[무근본 자바(JAVA) 공부 : 프로그래밍] 의존성 주입 코드를 통한 간단한 예시

by 크리드로얄워터 2023. 3. 25.
반응형
의존성 주입(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 인터페이스를 구현하는 어떤 클래스든지 사용할 수 있게 되었습니다.

반응형

댓글