[디자인 패턴] 홀더 패턴
홀더(holder) 패턴은, 팩토리 메소드 패턴과 싱글톤 패턴이 혼합된 형태의 변형 패턴 중 하나다.
홀더 클래스의 메소드는 팩토리 메소드처럼 어떤 인터페이스의 객체를 반환하지만.
팩토리메소드가 호출 시마다 새로운 객체를 생성해서 반환한 것과 다르게, 하나씩의 정적 객체만을 미리 생성해두고 반환한다.
객체를 하나씩만 잡아두고(hold) 있기 때문에 홀더인 것 같다.
코드를 보자.
일단 객체의 인터페이스와 구현 클래스들을 대강 만들어준다.


그리고 이게 생성과 관리를 담당할 홀더 클래스다.

getFoo 메소드에선 들어온 플래그에 맞춰, 이미 생성해놓고 잡아(hold)놓은 객체를 반환한다.
그럼 이런식으로 사용할 수 있다.

간단하다.
안드로이드 등에서 뷰홀더(view holder)라는 이름으로 자주 사용되는 것 같다.
참조
https://effectiveprogramming.tistory.com/m/entry/Holder-%ED%8C%A8%ED%84%B4