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

- 5 روز پیش
توسط علی بیات آپدیت شد
madadi ( 4890 تجربه )
5 روز پیش

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

علی بیات ( 75322 تجربه )
5 روز پیش

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

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

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

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

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

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

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

برای ارسال پاسخ باید وارد سایت شوید