스프링

객체지향의 다형성

salmon16 2023. 7. 4. 00:56

객체 지향의 특징 중 다형성에 주목하자

다형성을 쉽게 이해하기 위해 무대 공연을 예시로 들어보자

다형성은 역할과 구현을 구분해야 한다.

 

위 그림에서 로미오 역할은 장동건, 원빈 중 누가 하더라도 상관이 없다

줄리엣도 김태희, 송혜교 중 누가 하더라도 동일하게 줄리엣의 역할을 수행할 수 있다 

이것이 다형성이다 역할만 잘 만든다면 장동건으로 로미오를 구현하든 원빈으로 구현하든 로미오의 역할을 수정 없이

구현 부분을 교체할 수 있다는 장점이 있다.

 

이제 이를 자바에 적용시켜 보자

MemberService라는 클라이언트가 있고 MemberRepository라는 interface와 Memory, jdbc로 각각 구현한 MemberRepository가 있다. MemberService는 MemberRepository를 요구하는데 초기에 Memory MemberRepository로 구현되어 있는 MemberRepository를 jdbc MemberRepository로 변경하려면 jdbc를 구현한후 MemberRepository의 변경없이 코드 한 줄만 수정해 주면 변경이 가능하다 

 

Memory 기반에서 jdbc 기반으로 변경시 코드 변경 부분

이를 위해서는 인터페이스를 안정적으로 잘 설계하는 것이 중요하다.

출처 : 인프런 스프링 핵심 원리 - 기본편  김영한