از این الگو زمانی استفاده کنید که
- آرایش و ترکیب اشیاء، ساخت اشیاء و همچنین بازنمایی اشیاء باید از سیستم decouple شوند.
- کلاسهایی که قرار است نمونهسازی شوند، در زمان اجرا مشخص میشوند.
- ساخت اولیهٔ هر شیء بسیار هزینهبر است.
در این الگو بدون این که نام کلاس اشیاء را بدانیم یا از جزئیات ساخت اشیاء مطلع باشیم با استفاده از کلون کردن آنها را ایجاد میکنیم.
وقتی که ساخت یک شیئ زمانبر و هزینهبر باشد. بهتر است به جای این که برای تعداد زیادی از اشیاء تمام مراحل ساخت شیئ را طی کنیم، یک پروتوتایپ میسازیم سپس از روی آن نمونهبرداری میکنیم و طبق نیازهای خودمان، اشیاء جدید را اصلاح میکنیم. پروتوتایپ: نمونهٔ اولیه، اولین شیای که میسازیم و سپس تمامی اشیاء را از روی این شئ میسازیم.
مثال: ساختن انواع اقسام خانهها خیلی زمانبر است. همهٔ مراحل ساخت این خانهها هم یکسان است. در نتیجه به جای این که هر دفعه که مشتری خانهٔ خاصی (گلی، خشتی، سیمانی و ...) را طلب کرد. از یک نمونهٔ اولیه (پروتوتایپ) که قبلاً ساختهایم یکی فتوکپی میگیریم و سپس متناسب با نیاز مشتری آن را تغییر میدهیم و به مشتری تحویل میدهیم. اینطوری دیگر لازم نیست تمامی مراحل زمانبر ساخت خانه را از اول تکرار کنیم. (DRY)
- java.lang.Object#clone() (the class has to implement java.lang.Cloneable)
DRY: Do Not Repeat Yourself