الگوی نمونه اولیه

دانشنامه عمومی

الگوی نمونه اولیه یکی از الگوهای طراحی در توسعه نرم افزار است. وقتی نوع اشیاء ساخته شونده با یک نمونه اولیه مشخص شود، از این الگو استفاده شده است؛ که در واقع یک مورد مشابه از خود ساخته است یا به اصطلاح خودسازی کرده است. موارد استفاده از این الگو:
• جلوگیری از وجود کلاس فرزند از یک کلاس سازنده اشیاء در نرم افزار مشتری همان طوری که الگوی کارخانه انتزاعی عمل می کند.
• جلوگیری از هزینه وراثتی ساخت شیء جدید در روش معمول آن ( به عنوان مثال با استفاده از دستور 'new' ) چرا که در برنامه ها این کار از نظر پردازشی پرهزینه خواهد بود.
برای پیاده سازی الگو، یک کلاس پایه انتزاعی که یک تابع مجازی خودسازنده ( 'clone' ) دارد در نظر می گیریم. هر کلاسی که قابلیت ساخت اشیاء جدید را داشته باشد از کلاس اولیه ارث برده و دستور خودسازی ( 'clone' ) را می سازد.
مشتری به جای نوشتن کدی که فراخوانی ساخت شی جدید ( 'new' ) را اجرا می کند، دستور خودسازی ( 'clone' ) را از نمونه اولیه فراخوانی می کند. یا یککارخانه را با یک پارامتر تعیین کننده نوع کلاس مشتق شونده صدا می کند یا دستور خودسازی را از یک سری روش های به وجود آمده در یک الگوی طراحی دیگر اجرا می کند.
اینتقسیم میتوزی سلولی — که باعث ایجاد دو سلول مشابه می شود — یک مثال از یک نمونه اولیه است که از خود تکثیر می کند و همان مدل اولیه را به همه ارائه می دهد. هنگامی که یک سلول تجزیه می شود دو تا از سلول مورد نظر ایجاد می شود. به عبارت دیگر کلاس نمونه کلاسی مشابه خود ( سلول مشابه خود ) ایجاد می کند. [ ۱]
گاهی الگوهای ساخته شونده تداخل دارند. موارد وجود دارد که هر دو الگوی نمونه اولیه یا کارخانه انتزاعی مناسب خواهد بود. در موارد دیگری کامل کننده یکدیگر هستند: کارخانه انتزاعی ممکن است مجموعه ای از نمونه های را نگه دارد و تا نمونه های جدید را از آن ها بسازد. الگوی کارخانه انتزاعی، الگوی سازنده، و الگوی نمونه اولیه همگی می توانند از الگوی یگانه ( singltone ) در پیاده سازی خود استفاده کنند. کلاس های کارخانه انتزاعی اغلب با دستور کارخانه ساخته می شوند ( ایجاد از طریق ارث بری ) اما آن ها را می توان با استفاده از نمونه اولیه نیز ایجاد کرد ( ایجاد از طریق هیئت ) .
نمونه اولیه به کلاس های فرزند نیاز ندارد، ولی به یک مقداردهی اولیه نیاز دارد. بر عکس آن روش کارخانه به مقداردهی اولیه نیاز ندارد ولی به ساخت کلاس های فرزند و وراثت نیاز دارد.
عکس الگوی نمونه اولیه
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس