DI

1. Google Guice? Spring은 DI 뿐만 아니라 다양한 기능을 제공하는 반면에 Google Guice는 DI 프레임워크이다. 작은규모의 프로젝트나 경량성이 중요한 경우에 사용하는 것이 적합하다. Communicator 인터페이스를 정의했다고 가정하자. Communicator 구현체는 CommunicatorImpl이다. 만약 구현체를 변경해야 하는 상황이 오면 Communication과 Communicator 는 강하게 결합되어 있어 유지보수에 상당한 어려움이 생길 수 있다. 2. 문제 코드 public interface Communicator { } public class CommunicatorImpl implements Communicator{ } public class Communica..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다 1. DI, IoC 탄생배경 DI, IoC가 없었더라면, 객체지향의 원칙 중 DIP, OCP 등을 완벽하게 지킬 수 없다. 코드를 보자. public class MemberServiceImpl implements MemberService { private MemberRepository memberRepository = new MemoryMemberRepository(); } MemberServiceImpl은 MemoryMemberRepository와 의존관계를 가진다. MemberReposiory는 인터페이스로 구현체(클래스)가 바뀔 경우 MemberServiceImpl에서도 코드를 변경해줘야 한다. ⇒ 객체지향 설계원칙(DIP, OCP)를 ..
kmindev
'DI' 태그의 글 목록