(실습)객체지향 설계 원칙를 지키면서 설계하기
·
Spring Framework
먼저 레거시입니다. 클라이언트 클래스가 MemberRepository라는 인터페이스뿐만 아니라 MemoryMemberRepository라는 구체 클래스에도 의존하고 있다. 그래서 DIP, OCP를 위반하고 있다. 이해를 안갈 수 있으니 예를 들어보자. 만약 구체(구현) 클래스가 JpaRepository로 바뀌었다. 그러면 클라이언트 클래스 (MemberServiceImpl) 에서 new JpaRepository로 변경할 것이다. 의존관계에서 구체 클래스를 의존하고 있어 DIP를 위반하고 있다. 그리고 만약 구체 클래스를 변경하려면 클라이언트 클래스를 직접 수정해야 하므로 OCP를 위반한다. 문제를 해결하는 방법이다. 인터페이스에만 의존하는 방법으로 생성자를 통해 구현 객체를 주입(D..