나만 이해하도록 불친절하게 작성되어 있습니다.
자세한 내용은 책을 보세요.
Singleton
- 인스턴스가 한 개 밖에 존재하지 않는 것을 보증하는 패턴.
- 인스턴스 개수를 n개로 만드는 응용도 가능하다. (이러면 Flyweight 패턴과 비슷해짐)
- 너무 유명한 패턴이어서 코드가 정형화되어 있다. 일단 생성자는 private으로 만든다. static member 변수인 instance를 static 하게 생성하고 그 뒤로는 getInstance() 메소드를 통해서 생성된 instance를 제공한다.
- 만일 생성과정에서 초기 input이 필요한 경우가 있는데 이때는 initialize() 메소드를 따로 빼든지 해야해서 좀 골치 아파진다.
- Singleton이 많으면 life cycle 동안 상주하는 메모리가 많아진다. 또 자체적으로 thread safe하게 만들어야 하므로 synchronized 범벅이 되어서 성능 하락을 가져올 수 있다.
댓글 없음:
댓글 쓰기