Creational Patterns(생성 패턴) :: Prototype(원형)
구분
객체 생성 (Object Creational)
의도
- 원형이 되는 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성한다.
사용시기
- 인수턴스할 클래스를 런타임에 지정할 때
- 제품 클래스 계통과 병렬적으로 만드는 팩토리 클래스를 피하고 싶을 때
- 클래스의 인스턴스들이 서로 다른 상태의 조합 중에 어느 하나일 때
- 미리 원형으로 초기화해 두고, 나중에 이를 복제해서 사용하는 것이 매번 필요한 상태 조합의 값들을 수동적으로 초기화하는 것보다 더 편리하다.
장점과 단점
1. 런타임에 새로운 제품을 추가하고 삭제할 수 있다.
2. 값들을 다양화함으로써 새로운 객체를 명세한다.
3. 구조를 다양화함으로써 새로운 객체를 명세할 수 있다.
4. 서브클래스의 수를 줄일 수 있다.
5. 클래스에 따라 동적으로 응용프로그램을 설정할 수 있다.
구현의 유의점
1. 원형 관리자를 사용한다.
2. Clone() 연산을 구현한다.
3. Clone() 을 초기화한다.
관련 패턴
Composition, Decorator 패턴에서 Prototype패턴을 쓰는 것을 추천함
참조문헌
- GoF의 디자인패턴
댓글 없음:
댓글 쓰기