[생성 패턴] Prototype pattern (프로토타입 패턴)
어떤 클래스의 인스턴스를 만드는 것이 자원/시간을 많이 잡아먹거나 복잡한 경우
생산 비용이 높은 인스턴스를 복사를 통해서 쉽게 생성할 수 있도록 하는 패턴
프로토타입 패턴은 퍼포먼스를 염두하면서 중복된 객체를 생성하는 것을 가리킨다.
이 패턴은 현재 객체의 클론을 생성하는 것을 말하는 prototype interface를 구현하는 것을 필요로 한다. 이 패턴은 객체의 생성이 직접적으로 비쌀 때 사용되어 진다. 예를 들면, 어떤 객체는 비싼 database 연산 후 생성되어진다. 우리는 그 객체를 cache할 수 있고, 다음 요청에서 이것의 클론을 반환한다. 그리고 그것으로 database를 갱신한다 그러면 필요한 때 database호출이 감소한다.
생산 비용이 높은 경우?
1. 종류가 너무 많아서 클래스로 정리되지 않는 경우
2. 클래스로부터 인스턴스 생성이 어려운 경우
(사용 예제)
1. 일러스트레이터와 같은 그림 그리기 툴을 개발중 어떤 모양을 그릴 수 있도록 하고
2. 복사 붙여넣기 기능을 구현하기.
깊은 복사와 얕은 복사
얕은 복사 : 주소값만 넘겨주어 사실상 같은 객체를 가리킴
깊은 복사 : 자바에서 지원하는 Cloneable 인터페이스를 구현하여 동일한 내용이지만 다른 객체를 생성함
'Development > Java' 카테고리의 다른 글
[구조 패턴] Filter/Criteria pattern (필터 패턴) (0) | 2017.04.13 |
---|---|
[행위 패턴] Visitor pattern (비지터 패턴) (0) | 2017.03.26 |
[행위 패턴] Memento pattern (메멘토 패턴) (0) | 2017.03.26 |
[행위 패턴] Mediator pattern (미디에이터 패턴) (0) | 2017.03.26 |
[행위 패턴] Interpreter pattern (인터프리터 패턴) (0) | 2017.03.26 |