• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مقایسه الگوی factory و الگوی singleton
#1
من با توجه به تحقیقی که کردم. به این نتیجه رسیدم که در کلاسی که الگوی singleton طراحی شده یک کپی از کلاس رو در یک متغییر استاتیک ایجاد میکنند و هروقت نیاز باشه که اون کلاس چندین بار ساخته و استفاده بشه فقط اون متد رو تعریف میکنند و اینجوری دوباره کلاس انگار تازه ایجاد شده.

اما در factory هروقت که نیاز هست .کلاس رو نیو میکنند.

آیا درست گرفتم این موضوع رو یا موارد دیگری هم هست؟
حالا سوال اینجاست برای ایجاد یک html جنراتور که برای هر تگ یک کلاس ایجاد شده کودم الگو بهتره حالت بهتره؟
  پاسخ
تشکر شده توسط :
#2
نقل قول:من با توجه به تحقیقی که کردم. به این نتیجه رسیدم که در کلاسی که الگوی singleton طراحی شده یک کپی از کلاس رو در یک متغییر استاتیک ایجاد میکنند و هروقت نیاز باشه که اون کلاس چندین بار ساخته و استفاده بشه فقط اون متد رو تعریف میکنند و اینجوری دوباره کلاس انگار تازه ایجاد شده.

الگوی Singleton برای کلاسی هستش که یه شی از اون کلاس بتونه از پس همه کارها بر بیاد، مثلا برای ارتباط با دیتابیس یک بار که اتصال برقرار بشه از همین شیئ برای همه ارتباط ها میشه استفاده کرد از این نوع کلاس زیاد هست ولی مثال معرفش همین ارتباط با دیتابیس و یا session ها هستش.

نقل قول:حالا سوال اینجاست برای ایجاد یک html جنراتور که برای هر تگ یک کلاس ایجاد شده کودم الگو بهتره حالت بهتره؟

بستگی به نوع استفاده داره.
  پاسخ
تشکر شده توسط : zoghal
#3
سینگلیشن مخصوص این هست که از یه کلاس باید حتما یه دونه آبجکت داشته باشیم
factory برای این هست که بر اساس یه ساختاری بیاد و آبجکت مورد نظر رو درست کنه
به نظر من این میاد که باید factory استفاده کنی.

البته این رو هم ببین
http://www.phpclasses.org/browse/file/10685.html
  پاسخ
تشکر شده توسط : zoghal
#4
(۱۳۸۹ مرداد ۱۹, ۰۴:۳۰ ق.ظ)zoghal نوشته: من با توجه به تحقیقی که کردم. به این نتیجه رسیدم که در کلاسی که الگوی singleton طراحی شده یک کپی از کلاس رو در یک متغییر استاتیک ایجاد میکنند و هروقت نیاز باشه که اون کلاس چندین بار ساخته و استفاده بشه فقط اون متد رو تعریف میکنند و اینجوری دوباره کلاس انگار تازه ایجاد شده.

اما در factory هروقت که نیاز هست .کلاس رو نیو میکنند.

آیا درست گرفتم این موضوع رو یا موارد دیگری هم هست؟
حالا سوال اینجاست برای ایجاد یک html جنراتور که برای هر تگ یک کلاس ایجاد شده کودم الگو بهتره حالت بهتره؟

الگوی singleton همانطور که دوستان اشاره کردند، شما را مطمئن میکند که از هر کلاس فقط یک شئ وجود دارد ولی کار الگوی factory درست کردن یک نمونه از چندین کلاس که مشتق هم هستند، هست.
برای اچ تی ام ال جنراتور هم به نظر من، مناسبترین گزینه الگوی Multiton هست.
  پاسخ
تشکر شده توسط : zoghal
#5
این الگو گویا با نسخه های 5.3 به بالای پی اچ پی کاربر داره پس فعلا کاربردی نیست
  پاسخ
تشکر شده توسط :
#6
(۱۳۸۹ مرداد ۲۷, ۰۳:۰۰ ق.ظ)zoghal نوشته: این الگو گویا با نسخه های 5.3 به بالای پی اچ پی کاربر داره پس فعلا کاربردی نیست
کدوم الگو رو میگید؟
  پاسخ
تشکر شده توسط :
#7
Multiton رو میگه لابد. Wink
  پاسخ
تشکر شده توسط :
#8
(۱۳۸۹ مرداد ۲۷, ۰۶:۵۳ ق.ظ)oia نوشته: Multiton رو میگه لابد. Wink

الگوها چه ربطی به نسخه پی اچ پی دارند Idea
فقط در پی اچ پی 4 به دلیل نبود static نمیشد این الگوها رو پیاده کرد ولی الان که مشکلی نیست
  پاسخ
تشکر شده توسط :
#9
تنها دلیلی که توی مثال وجود داره این هست که نسخه php 5.3 هست که داره از late static binding پشتیبانی می کنه. اگر بشه به روش دیگه پیاده سازی بشه میشه ازش استفاده کرد.
  پاسخ
تشکر شده توسط :
#10
(۱۳۸۹ مرداد ۲۷, ۰۳:۰۰ ب.ظ)admin نوشته: تنها دلیلی که توی مثال وجود داره این هست که نسخه php 5.3 هست که داره از late static binding پشتیبانی می کنه. اگر بشه به روش دیگه پیاده سازی بشه میشه ازش استفاده کرد.

منظورتون از مثال
http://www.phpclasses.org/browse/file/10685.html
هست؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان