-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
정적 팩토리 메서드
24.06.29 19:00 작성 조회수 111
0
안녕하세요 토비님 😄 강의 맛있게 잘 보고 있습니다.
마이너 한 질문인데, 테스트에 Clock 을 이용한 테스트에서
6.50 초 쯔음
아래 와 같은 fixed <- 의 유형 ? 을 정적 팩토리 메서드라고 하셨는데 객체를 반환하기 위해 static 키워드를 사용해야 정적팩토리 메서드가 아닌지 여쭤봅니다
@Bean
public Clock clock() {
return Clock.fixed(Instant.now(), ZoneId.systemDefault());
}
답변을 작성해보세요.
2
토비
지식공유자2024.06.29
말씀하신 대로 static 메소드로 만들어졌고 리턴 타입의 오브젝트를 생성하는 기능을 담당하는 메소드를 정적 팩토리 메소드라고 합니다.
Clock.fixed()는 다음과 같이 정의되어있습니다.
public static Clock fixed(Instant fixedInstant, ZoneId zone) {
Objects.requireNonNull(fixedInstant, "fixedInstant");
Objects.requireNonNull(zone, "zone");
return new FixedClock(fixedInstant, zone);
}
static 메소드이고, Clock의 서브클래스인 FixedClock의 오브젝트를 생성해서 반환합니다.
예제에 나온 clock()은 그 자체로 정적 메소드는 아니죠. 내부에서 정적 팩토리 메소드를 호출해서 오브젝트를 생성하고 리턴하는 @Bean이 붙은 스프링의 팩토리 메소드일 뿐입니다. 둘 다 팩토리 메소드라고 이야기하는데 조금 다른 방식으로 작성되고, Clock.fixed()와 같은 메소드만 정적(static)이라고 부릅니다.
1
디벨로퍼그리즐리
2024.06.29
![image.png image.png](https://cdn.inflearn.com/public/files/posts/e06a83fc-7d50-48a8-bcca-596b31f804e6/image.png)
Clock 클래스의 javadoc 문서인데, 보시면 fixed에 static(정적) 키워드가 붙어있고 머시기 instant를 만들어준다고 나와있습니다
1
1
답변 4