Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
# هدف انواع اشیائی که باید ساخته شوند را با استفاده از یک نمونهٔ اولیه، مشخص می‌کند و اشیاء جدید را با کپی کردن این نمونهٔ اولیه تولید می‌کند.

ساختار

Prototype UML

نکات طراحی

از این الگو زمانی استفاده کنید که

  • آرایش و ترکیب اشیاء، ساخت اشیاء و همچنین بازنمایی اشیاء باید از سیستم decouple شوند.
  • کلاس‌هایی که قرار است نمونه‌سازی شوند، در زمان اجرا مشخص می‌شوند.
  • ساخت اولیهٔ هر شیء بسیار هزینه‌بر است.

شرح الگو

در این الگو بدون این که نام کلاس اشیاء را بدانیم یا از جزئیات ساخت اشیاء مطلع باشیم با استفاده از کلون کردن آن‌ها را ایجاد می‌کنیم.

وقتی که ساخت یک شیئ زمان‌بر و هزینه‌بر باشد. بهتر است به جای این که برای تعداد زیادی از اشیاء تمام مراحل ساخت شیئ را طی کنیم، یک پروتوتایپ می‌سازیم سپس از روی آن نمونه‌برداری می‌کنیم و طبق نیازهای خودمان، اشیاء جدید را اصلاح می‌کنیم. پروتوتایپ: نمونهٔ اولیه، اولین شی‌ای که می‌سازیم و سپس تمامی اشیاء را از روی این شئ می‌سازیم.

مثال: ساختن انواع اقسام خانه‌ها خیلی زمان‌بر است. همهٔ مراحل ساخت این خانه‌ها هم یکسان است. در نتیجه به جای این که هر دفعه که مشتری خانهٔ خاصی (گلی، خشتی، سیمانی و ...) را طلب کرد. از یک نمونهٔ اولیه (پروتوتایپ) که قبلاً ساخته‌ایم یکی فتوکپی می‌گیریم و سپس متناسب با نیاز مشتری آن را تغییر می‌دهیم و به مشتری تحویل می‌دهیم. اینطوری دیگر لازم نیست تمامی مراحل زمان‌بر ساخت خانه را از اول تکرار کنیم. (DRY)

مثال‌های واقعی

  • java.lang.Object#clone() (the class has to implement java.lang.Cloneable)

بیشتر بخوانید

DRY: Do Not Repeat Yourself