싱글톤 패턴에 객체 주입받기! (ft.빌더)Back-end/Java, Kotlin2021. 3. 7. 02:12
Table of Contents
LazyHolder로 작성한 Thread-Safe 싱글톤 패턴이다! + 빌더
이것을 사용하는 이유는 아래 글을 참고!
싱글톤 패턴(Singleton pattern)을 쓰는 이유와 문제점 (tistory.com)
www.daleseo.com/lombok-useful-annotations/
호출부이다.
public class Caller {
public static void main(String[] args) {
BoardMapper boardMapper = new BoardMapper();
Something s1 = Something.getInstance(boardMapper);
Something s2 = Something.getInstance(boardMapper);
System.out.println(s1);
System.out.println(s2);
Something.testStatic();
s1.testInstance();
}
}
실행 결고과는 아래와 같다.
singleton.Something@123a439b
singleton.Something@123a439b
im the Something of static
im the Something of instance
public class Something {
private static BoardMapper mapper;
private Something() { }
private static class LazyHolder {
public static final Something INSTANCE = new Something();
public final static void setProperty(BoardMapper _mapper) {
mapper = _mapper;
}
}
public static Something getInstance(BoardMapper _mapper) {
LazyHolder.setProperty(_mapper);
return LazyHolder.INSTANCE;
}
public static void testStatic() {
System.out.println("im the Something of static");
}
public void testInstance() {
System.out.println("im the Something of instance");
}
}
class BoardMapper { }
setProperty 빌더 패턴의 메서드 체이닝을 생각해서 return this를 넣어서 하고 싶었지만
싱글톤패턴이랑 엮임 + 역량 부족으로 실패하였다. ㅠㅠ
'Back-end > Java, Kotlin' 카테고리의 다른 글
외부에서 다운받은 jar 추가하기 (0) | 2021.03.14 |
---|---|
스프링 위에 공통 클래스를 만들기 (0) | 2021.03.07 |
디자인패턴 중.. State (2) | 2020.12.17 |
enum 그것이 알구싶다 !! 이넘아 (0) | 2020.12.12 |
다형성과 형변환, instance : 네이버 블로그 (0) | 2020.10.01 |
@philo0407 :: Philo의 다락방
hi hello... World >< 가장 아름다운 하나의 해답이 존재한다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!