⚡프로토 타입 패턴이란?
프로토타입 패턴(Prototype pattern)은 객체 생성에 대한 비용이 높은 경우 생성 비용을 최소화하기 위해 사용하는 디자인 패턴 중 하나이다. 이미 존재하는 객체를 복제하여 새로운 객체를 생성하는 방식으로 동작한다.
⚡프로토 타입 패턴은 어떤 경우에 사용하는가 ?
- 객체의 생성이 복잡하고, 시간이 오래 걸리는 경우
- 객체를 생성하는 과정에서 많은 계산이 필요하거나, 복잡한 초기화 작업이 필요한 경우에는 프로토타입 패턴이 유용하다. 이 패턴을 사용하면 이미 생성된 객체를 복제하여 새로운 객체를 생성하기 때문에 객체 생성 과정에서 발생하는 비용을 줄일 수 있게 된다.
- 객체 생성에 필요한 정보가 동적으로 결정되는 경우
- 객체 생성에 필요한 정보가 동적으로 결정되는 경우이다. 이 경우에는 먼저 초기 객체를 생성하고 이를 복제하여 새로운 객체를 생성할 때 필요한 정보를 동적으로 설정할 수 있다.
- 유사한 객체가 자주 생성되는 경우
- 유사한 객체를 자주 생성해야 하는 경우에는 객체 생성 비용을 최소화할 수 있다. 예를 들어 게임에서 캐릭터 객체를 생성하는 경우에는 매번 새로운 캐릭터를 만들 필요가 없고 이미 생성된 캐릭터를 복제하여 새로운 캐릭터를 만들면 된다.
⚡프로토 타입 패턴의 장단점
장점
- 객체 생성 비용을 줄일 수 있다.
- 객체 생성에 필요한 정보를 중앙 집중적으로 관리할 수 있다.
- 객체 생성 시스템을 유연하게 만들 수 있다.
- 객체 생성 과정에서 발생하는 복잡한 초기화 작업을 처리할 수 있다.
- 객체의 동적인 변화에 대해 유연하게 대처할 수 있다.
단점
- 프로토타입 객체의 개수가 많아지면 메모리 사용량이 증가할 수 있다.
- 객체를 복제하는 과정에서 객체의 상태를 유지할 수 없을 수도 있다.
- 복잡한 객체의 경우, 객체 복제 과정에서 문제가 발생할 가능성이 있다.
⚡프로토 타입 패턴 소스 정리
⚡생각
객체 생성의 비용이 높은 경우라는 말을 잘 생각하면 사용해야 하는 패턴이라고 생각한다. 매번 new 를 통해 객체를 생성 하여 사용하는 방식에서 객체의 필요에 따라서는 얕은 복사 또는 깊은 복사를 할지 선택적으로 사용하자.!
반응형
'디자인 패턴' 카테고리의 다른 글
[디자인 패턴] 브리지 패턴에 대한 내용 정리 (0) | 2023.03.25 |
---|---|
[디자인 패턴] 어댑터 패턴에 대한 내용 정리 (0) | 2023.03.24 |
[디자인 패턴] 빌더 패턴에 대한 내용 정리 (0) | 2023.03.20 |
[디자인 패턴] 추상 팩토리 패턴에 대한 내용 정리 (0) | 2023.03.16 |
[디자인 패턴] 팩토리 메소드 패턴에 대한 내용 정리 (0) | 2023.03.14 |