컴퓨터 공부/디자인 패턴

[7월 7일 3교시] Singleton, prototype 패턴

려리군 2009. 7. 7. 17:35
Singleton 패턴
클래스의 인스턴스는 오직 하나임을 보장하며 이 인스턴스에 접근할 수 있는 방법을 제공.
Intent
클래스에서 만들 수 있는 인스턴스가 오직 하나(혹은 원하는 만큼만)일 경우 이에 대한 접근을 어디에서든지 하나로만 통일하여 제공한다.
Motivation
예시) DBConnectionPool
전역변수보다는 static을 사용해서 만드는 방법을 추천한다.
※ 생성자는 private로 선언한다.
장점 : 유일하게 존재하는 인스턴스로의 접근을 통제할 수 있다.
Operation 개선이 가능하다. Singleton클래스는 상속 가능.
인스턴스 개수를 통제할 수 있다.
단점
생성자를 언제 호출하는 지 프로그래머가 신경써야 한다.


prototype 패턴
복사해서 인스턴스를 만든다.
※ 생성되는 과정이 복잡할 때 사용한다.

Intent
견본 인스턴스를 사용하며 그걸 복제하여 새로운 객체를 생성한다.
Motivation
상속에 의한 서브클래싱
...
적용범위
제품의 생성, 합성, 표현 방법에 독립적인 제품을 만들때.

관련 패턴
Abstract Factory : prototype과는 경쟁적인 관계.
Flyweight : 작은 요소들을 재활용. 같은 인스턴스를 재활용
memento : 인스턴스에 대한 snapshot, undo기능.