MemberService를 싱글톤화하면서 생긴 상속 개념 궁금증
package hello.core.singleton;
public class MemberService {
/*1*/private static final MemberService instance = new MemberServiceImpl(memberRepository);
/*2*/public static MemberService getInstance(){return instance;}
/*3*/private memberService(){}
}
@Test
@DisplayName("싱글톤 패턴 적용한 객체 사용")
void singletonServiceTest(){
MemberService instance1 = MemberService.getInstance();
MemberService instance2 = MemberService.getInstance();
System.out.println("instance1 = " + instance1);
System.out.println("instance2 = " + instance2);
//인스턴스가 같은지 비교하기위해 isSameAs 사용한다!
assertThat(instance1).isSameAs(instance2);
}
모르는 부분1.싱글톤 패턴을 적용해서 테스트 코드작성해보면 MemberService.getInstance()로 MemberService의 getInstance를 호출해서 인스턴스를 생성하는 것 같다. 그런데 MemberService는 인터페이스인데 인터페이스의 메서드에 접근해서 인스턴스를 생성할 수 있나? 객체 지향 프로그래밍의 상속 개념에 따르면 그럴 수 없다고 한다.
객체 지향 프로그래밍
인터페이스와 상속 개념 공부하기
=> 인터페이스의 메서드에 접근할 수 없다!?
Last updated
Was this helpful?