madadi
6 سال پیش توسط madadi مطرح شد
2 پاسخ

راهنمایی در مورد استفاده چندکلاس در دیزاین پترن ها

سلام وقت بخیر دوستان
من سه تا کلاس دارم
کلاس اول مثلا کارش گرفتن اطلاعات پرواز از دیتابیس هست
گلاس دوم کارش گرفتن اطلاعات مسافران از دیتابیس و بررسی وجود اون پرواز تو کلاس اول هست
کلاس سوم هم نمایش اطلاعات
من اومدم کلاس دو رو اکستند کردم از کلاس یک
حالا من میخوام گاهی وقتا از کلاس دوم استفاده کنم که مثلا فقط اطلاعات یک کاربر رو در بیارم
و رسما به اطلاعات پرواز که تو کلاس یک هست نیازی ندارم
ولی این کلاس تو کلاس دو extends شده
حالا ممنون میشم راهنمایی کنید با دیزاین پترن ها چطور میشه این اکستند کردن رو برداشت که کلاس دو دیگه کارش گیره کلاس یک نباشه
شدنی هست یا نه
ممنون میشم


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

در واقع کلاس ۲ شما برای یه کار کوچک، تمام عملکردهای کلاس ۱ رو به ارث می‌بره... در صورتی که شما نیازی به چنین حالتی ندارید.

این جاست که الگوهای طراحی به داد ما میرسند و شما میتونید الگوی دکوراتور (Decorator) و یا الگوی کامپوزیت (Composition) رو جایگزین وراثت کنید.

در توضیح الگوهای بالا:

  • Decorator :الگوی طراحی دکوراتور یکی از الگوهای طراحی ساختاری هست و امکان اضافه کردن عملکرد به اشیا را در زمان اجرا فراهم می کند.
  • Composition :الگوی کامپوزیت الگوی یک گروه از اشیاء را توصیف می‌کند که این اشیا به خاطر یکسان بودن نوعشان به یک شکل با آن‌ها رفتار می‌شود. هدف از کامپوزیت این است که اشیا را به ساختار درختی تبدیل کند. پیاده‌سازی الگوی کامپوزیت به استفاده‌کنندگان اجازه می‌دهد تا با اشیای جداگانه و مجموعه آن‌ها به یک شکل رفتار کنند.

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

@madadi
طریقه پیاده‌سازی این سیستم با الگوی طراحی دکوراتور:

  • یک اینترفیس (Interface) بوجود میاریم.
  • در تمام کلاس‌ها الزام تبعیت از قرارداد (اینترفیس) رو بوجود میاریم.
  • تمام کلاس‌ها رو٬ بغیر از کلاس اولیه به دکوراتور تبدیل می‌کنیم.

جهت توضیحات کامل‌تر میتونید به نوشته من ( الگوی طراحی دکوراتور (Decorator) در زبان PHP ) در ویرگول مراجعه کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام