[객체 생성 패턴] Chapter 5-3. Prototype Pattern : 장단점

 

✍️ 프로토타입, 정리

프로토타입 패턴을 간단하게 정리하자면, 기존의 인스턴스를 청사진 삼아 새로운 인스턴스를 생성하는 방법으로 Prototype interface는 clone 메서드를 추상화하고, 클래스는 이를 구현함으로써 복제된 인스턴스를 제공한다.

 

Java의 경우 Cloneable interface를 구현하고 Object가 제공하는 clone 메서드를 재정의하면 기본적인 clone을 사용할 수 있고 이와 유사하게 C#은 Memberwiseclone을 제공한다. 이처럼 본인이 사용하는 언어가 기본적인 clone 메서드를 지원한다면 프로토타입 패턴에 활용할 수 있다.

 

🍊 프로토타입, 장단점

프로토타입 패턴의 장점으로

째로, 복잡한 객체를 만드는 과정을 숨길 수 있다.

째로. 기존 객체를 복제하는 과정이 새 인스턴스를 만드는 것보다 비용면에서 효율적일 수 있다.

째로,  clone에서 반환하는 타입이 clone을 정의한 클래스와 반드시 동일할 필요는 없다. 클래스의 계층 구조가 있을 때 추상화된 타입을 반환할 수 있는 유연성이 있다.

 

반면, 단점으로 인스턴스를 복제하는 과정 자체가 복잡할 수 있다. 가령 인스턴스가 가지고 있는 레퍼런스간의 순환 참조가 있는 경우 clone 메서드를 만드는 것 자체가 복잡할 수 있다.

 

 

 

 

인프런의 백기선님의 강의 코딩으로 학습하는 GoF의 디자인 패턴을 참고해서 작성했습니다.

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com