holder pattern in java

배운 것 2016. 3. 15. 18:01

홀더 패턴이라는 것을 처음 이용해보았다. 거의 받아쓰기 하듯이 짝코딩을 했는데, 하고 나서 찬찬히 보고 문서를 살펴보니 좀 이해할 수 있게 되었다. 그리고 이건 좋지 않다. 키보드를 치면 화면이 너무 많이 흔들린다. 


홀더 패턴이라고 검색하면 잘 나오지 않고, Initialization on demand holder idion이라고 정의되어 있는 것 같다. 


간단히 훑어봤을 때 장점은 lazy loading이다. 형식은 아래 문서들을 참고하면 쉽게 이해할 수 있다. A클래스에 대한 getInstance()함수를 수행하면 A클래스의 싱글톤 객체를 리턴한다. 그렇지만 내부를 살펴보면 A클래스의 Inner class인 B클래스의 필드를 리턴하는 것으로부터 A클래스의 싱글톤 객체를 가져다 쓸 수 있게 되는 것이다. 




정리하자면 


public class A {

public A getInstance (){ return B._instance();}

private static class B{

private A _instance = new A();

}

}



- 검색해서 이해하기 좋았던 문서 2개 

1. http://gampol.tistory.com/entry/Double-checked-locking%EA%B3%BC-Singleton-%ED%8C%A8%ED%84%B4

2. https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom



'배운 것' 카테고리의 다른 글

base64 vs base64url safe 차이  (2) 2016.04.03
perl로 날짜 비교 하기  (0) 2016.03.28
[linux command ] which, whereis  (0) 2016.03.04
[linux command] mkdir -p -m  (0) 2016.03.04
[linux command] cut  (0) 2016.03.04
Posted by 썬,더 호글
,