+1 امتیاز
قبل در برنامه نویسی توسط (7.2هزار امتیاز)
الگوی طراحی Prototype چیست؟ در کجا استفاده از آن مناسب است و تفاوت عمده آن با سایر الگوها مخصوصا Factory Method چیست؟
قبل توسط (1.1هزار امتیاز)
منظور شما الگوی طراحی Prototype است یا برنامه نویسی Prototype-based (مانند جاوااسکریپت)؟
قبل توسط (7.2هزار امتیاز)
+1
در زبانهای prototype-based نیز از همان روند prototype استفاده می شود. مثلا هنگامی که شما از شی XMLHttpRequest در JS یک نمونه ایجاد می کنید، تقریبا تمامی مشخصات آن دارای مقادیر پیش فرض می باشد(یعنی یک clone از یک شی از پیش ساخته شده است) اما در اینجا همان الگوی Prototype مد نظر من است.

2 پاسخ

+1 امتیاز
قبل توسط (7.8هزار امتیاز)
Prototype Pattern  یکی از الگوهای Creational است که هدف از آن :
    مشابه‌سازی کلاسی موجود به جای ایجاد وهله‌ای از آن (هنگامی که ایجاد نمونه‌ای دیگر بر روی کارایی برنامه تاثیر منفی داشته باشد) .

    به عنوان مثال در موارد زیر کاربرد دارد:

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

    برای پیاده‌سازی این الگو :
    یک کلاس پایه abstract ایجاد می‌کنیم که متد ()clone را تعریف می‌کند. هر کلاسی که از کلاسه پایه مشتق شود متد ()clone را پیاده‌سازی می‌کند.
    هر زمان که نیاز به کپی از این کلاس بود به جای نوشتن new متد ()Clone فراخوانده می‌شود.

البته هم Prototype Pattern و هم Factory Method در فرآیندهای تولید اشیاء استفاده می‌شوند و  الگوهای دیگری همچون Facade، Flyweight   در تركیب كلاس‌ها و اشیاء مورد استفاده قرار می‌گیرند یا Strategy, Template در چگونگی تعامل بین كلاس‌ها یا اشیاء و نحوه‌ی توزیع مسؤولیت بین آنها را مورد بحث قرار می‌دهند.
+1 امتیاز
قبل توسط (1.1هزار امتیاز)

الگوی طراحی Prototype بر پایه مفهوم کپی کردن (بجای ایجاد) یک شئ برای ایجاد یک شئ جدید است بطوری که شئ جدید کپی شده است.

الگوی طراحی Factory Method یا Abstract factory برای ایجاد یک شئ جدید از نمونه سازی یک شئ جدید استفاده می کنند.

مزیت الگوی طراحی Prototype سرعت بالاتر آن است بدلیل اینکه کپی کردن یک شئ  از ایجاد یک نمونه جدید شئ سرعت بیشتری دارد اما الگو های طراحی Factory Method یا Abstract factory مزیت استفاده بیشتر از امکانات شئ گرایی را دارند، از طرف دیگر الگوی طراحی Prototype ساده تر است و برای ایجاد یک نمونه جدید از یک شئ با استفاده از این الگو لزومی ندارد اطلاعات دقیقی از ساختار داخلی آن کلاس داشته باشیم.

قبل توسط (7.2هزار امتیاز)
"مزیت استفاده بیشتر از امکانات شئ گرایی" که برای factory ذکر کرده اید چیست؟
قبل توسط (1.1هزار امتیاز)
+1
مثلا وراثت.

سوالات مشابه

0 امتیاز
0 پاسخ 525 بازدید
+2 امتیاز
2 پاسخ 3.3هزار بازدید
0 امتیاز
1 پاسخ 1.7هزار بازدید
+1 امتیاز
1 پاسخ 1.7هزار بازدید
+2 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
1 پاسخ 2.4هزار بازدید
+1 امتیاز
0 پاسخ 552 بازدید
+1 امتیاز
1 پاسخ 2.0هزار بازدید
...