객체들이 의존 관계에 놓일 때, 사용객체에서 대상 객체에 접근을 합니다.
그러면, 인터페이스 타입, 조상 클래스 타입으로 사용하여 간접 접근을 하여 수행되는 메서드는 이를 재정의, 재사용을 통해 "현재 객체 메서드"로 동적 바인딩 되어 수행됩니다. 이를 다형성 구현이라고 합니다.
[ 아래 코드는 이해를 돕는 예시 코드입니다.]
// 의존 관계에 있는 인터페이스의 예시
public interface Product {
String getName();
double getPrice();
}
// Product 인터페이스를 구현한 구현체 클래스
public class Laptop implements Product {
@Override
public String getName() {
return "Laptop";
}
@Override
public double getPrice() {
return 999.99;
}
}
// 의존성 주입을 받는 클래스
public class Shopping {
private Product product;
// 생성자를 통한 의존성 주입
public Shopping(Product product) {
this.product = product;
}
// 상품의 정보를 출력하는 메서드
public void displayProduct() {
System.out.println("Product Name: " + product.getName());
System.out.println("Price: $" + product.getPrice());
}
}
// 메인 클래스
public class Main {
public static void main(String [] args) {
// Product 인터페이스를 통해 간접적으로 접근
Product laptop = new Laptop();
// ShoppingCart 객체 생성 및 의존성 주입
ShoppingCart cart = new Shopping(laptop);
// 상품 정보 출력
cart.displayProduct();
'IT개발 > Java' 카테고리의 다른 글
[Java]내가 생각하는 중요한 자바 용어 정리 (2) | 2024.09.28 |
---|---|
[Java] 배열 생성 + 입력 + 두 배열 합치기 - 콘솔 프로그램 (0) | 2024.07.15 |
[Java] .jar 파일 분석하기 (0) | 2024.06.22 |
JUnit 테스트 프로그램 - 자바(JAVA) (0) | 2023.11.10 |
컬렉션 스트림, 입출력(IO) 스트림 정의 - 자바(JAVA) (0) | 2023.11.09 |