* Spring - 느슨한 결합력과 인터페이스

jodbsgh·2022년 3월 28일
0

🍕"Spring"

목록 보기
3/19


Service 에서 사용하는 Dao의 B1 코드를 수정해야 하는 경우
새롭게 B2를 추가할 것인가..???

하지만 이 또한 Service코드를 수정해야 되기 때문에 좋지 않다.

ex)

	private B1 b = new B1();
    b.getData();
    
    ////////////////////코드 수정 과정이 필요///////////////////
    
    private B2 b = new B2();
    b.getData();

이를 해결할 수 있는 방법은 인터페이스를 활용하면 된다.

인터페이스를 활용하면 Service 코드의 인스턴스 번수를 건드리지 않아도 된다.

private B b = new B2();
b.getData();

하지만 여전히 문제가 남아있다.

객체를 생성하는 과정에서 new '클래스 명'();
즉, 클래스 명을 어떻게 바꿀 것인가...


이는 DI를 통해서 해결할 수 있다.
B1 ->에서 B2로 바꾸는 과정을 처리한다.

방법은 XML, Annotation등 외부 설정의 과정이 필요하다.

스크린샷 출처 https://www.youtube.com/c/%EB%89%B4%EB%A0%89%EC%B2%98/about

profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글