TIL(Today I Learned)
[TIL] 05.16
mkm101
2023. 5. 16. 20:54
반응형
배운 것
인프런 HTTP 웹 기본지식 Part 1
스프링 핵심 기본편
알고가는 것
강의를 듣다가,
MemberService memberService = new MemberServiceImpl() 이런 형태의 객체 생성 이유가 궁금했었다.
이것은 MemberService 인터페이스를 구현한 MemberServiceImpl` 클래스의 인스턴스를 생성한다는 의미이다.
이렇게 변수를 선언한 이유는 아래와 같다고한다.
1. 다형성(Polymorphism) 활용: 인터페이스를 사용하면 다양한 구현체를 사용할 수 있다. 즉, `MemberService` 인터페이스를 구현한 다른 클래스가 여러 개 있다면, 이러한 인스턴스들을 선택적으로 사용할수있다. (유연성 증가)
2. 결합도(Loose Coupling) 감소: 인터페이스를 사용하면 구현체와의 결합도를 낮출 수 있다는 장점이있다.
(역할과 구현 분리)
3. 테스트 용이성 향상: 인터페이스를 사용하면 구현체를 쉽게 교체할 수 있기 때문에, 테스트 시 가짜 객체(Mock Object)를 사용하여 테스트를 진행할 수 있다.
반응형