기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법
복제 기능을 갖추고 있는 기존 인스턴스를 프로토타입으로 사용해 새 인스턴스를 만들 수 있다.

구현 방법

장점과 단점
장점
- 복잡한 객체를 만드는 과정을 숨길 수 있다.
- 기존 객체를 복제하는 과정이 새 인스턴스를 만드는 것보다 비용(시간 또는 메모리)적인 면에서 효율적일 수도 있다.
- 추상적인 타입을 리턴할 수 있다.
단점
- 복제한 객체를 만드는 과정 자체가 복잡할 수 있다. (특히, 순환 참조가 있는 경우)
실무 적용 사례
- 자바 Object 클래스의 clone 메소드와 Cloneable 인터페이스
- 얕은 복사(shallow copy)와 깊은 복사(deep copy)
- Collections 을 사용할 때 대부분 인터페이스 타입으로 인스턴스를 사용하기 때문에 clone() 메서드를 사용할 수 없다. 따라서 구현체의 생성자에 파라미터로 넣는 방식을 주로 사용한다 (new ArrayList<>(list))
- ModelMapper
예제 코드
'GoF의 디자인 패턴' 카테고리의 다른 글
템플릿 메소드(Template method) 패턴 (0) | 2022.01.19 |
---|---|
어댑터(Adapter) 패턴 (0) | 2022.01.13 |
빌더(Builder) 패턴 (0) | 2022.01.08 |
추상 팩토리 패턴 (0) | 2022.01.06 |
팩토리 메소드(Factory method) 패턴 (0) | 2022.01.04 |
댓글