Prototype Pattern
목적
- 복제를 통해 기존 Object의 템플릿을 기반으로 Object 생성
사용하는 경우
- Object의 구성, 생성 및 표현은 시스템과 분리되어야 하는 경우
- 생성할 클래스는 런타임에 지정될 경우
- 다른 object와 object 집합과 동일하거나 유사한 것이 필요할 경우
(각 object의 초기 생성 비용은 큼)
class diagram
- Prototype : 복제를 위한 interface 정의
- ConcreteProduct : 자신을 복제할 수 있는 Object
- Client : 복제 request
class diagram (shallow, deep)
sequence diagram
특징
- Prototype을 공급하고 런타임에 변경(추가, 제거)할 수 있음 -> 런타임에 큰 유연성 제공
vs. Factory Pattern
Abstract Factory Class는 Factory와 함께 구현 되는 경우가 많은데 Prototype으로도 구현 가능
- Prototype은 delegate를 통해 생성, Factory는 상속을 통해 생성
예시 1 - Shallow (Java cloneable interface 이용)
예시 2 - Deep (Java cloneable interface 이용)
예시 3 - Deep (Java cloneable interface 이용 X)
예시 4
모든 graphic obejct는 복제될 수 있음
- Graphic : ConcreteProduct 이거나 Composite entity 일 수 있음.
반응형
'💻 개발IT > Design Patterns' 카테고리의 다른 글
3. Behavior 패턴 - Chain-of-Responsibility Pattern (0) | 2022.07.20 |
---|---|
5. Structural 패턴 - Proxy Pattern (0) | 2022.07.20 |
5. Structural 패턴 - Facade Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Visitor Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Command Pattern (0) | 2022.07.19 |
6. Compound 패턴 - MVC Pattern (0) | 2022.03.12 |
5. Structural 패턴 - Bridge Pattern (0) | 2022.03.10 |
5. Structural 패턴 - Composite Pattern (0) | 2022.03.09 |