Skip to Content
Suffering builds character
아카이브16.스프링 DI,MVC특징의존성 주입1.의존성

1.의존성

의존성이란 어떤 한 대상이 다른 대상을 참조하거나 필요로 하는 정도

  1. 클래스를 사용하는 쪽(User)과 클래스를 제공하는 쪽(Provider)
  2. 메서드를 사용(호출)하는 쪽(User)에서는 사용하려는 메서드(Provider)의 선언부(메서드명, 타입)만 알면 됨

class A가 b.myMethodB()를 호출하려면 class B에 대한 의존성이 필요

A.java
class A { public void methodA(B b){ b.myMethodB(); } }
B.java
class B{ public void myMethodB() { System.out.println("methodB()"); } }
Main.java
class Main { public static void main(String[] args){ A a = new A(); a.methodA(new B()); //B b = new B(); //a.methodA(b); } }

interface1

클래스 A(User)는 클래스 B(Provider)의 인스턴스를 생성하고 메서드를 호출함
→ 두 클래스는 서로 직접적인 관계가 있음

A.java
class A { public void methodA(B b){ b.methodB(); } }

만약 클래스 B의 methodB( )의 선언부(메서드명, 매개변수 타입, 개수 등)가 변경되면 이를 사용(호출)하는 클래스 A도 따라서 변경해야함(메서드명, 매개변수 타입, 개수 등)

즉, 서로 직접적인 관계가 될 경우 한 쪽(Provider)이 변경되면 다른 한 쪽(User)도 변경되어야 한다는 단점이 있음

Last updated on