🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ دری اللهیاری
استفاده از قابلیت وراثت
جامعه پی اچ پی ایجاد شده در ۱۲ فروردین ۱۴۰۱

با سلام استاد در این مثالی که فرمودن اگر از وراثت استفاده کنیم برای کلاس‌های ارسال sms و email و این کلاس‌ها هر کدوم کلاس notification رو extend کنن اصل open-close نقض نمیشه؟

سلام دوست عزیز وقت بخیر

لطفا کدهاتون رو قرار بدید تا از روی کد بررسی کنیم و خدمتتون توضیح بدیم.

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

https://7learn.com/app/topics/5362

موفق باشید

نوری خداپناهی ۱۲ فروردین ۱۴۰۱، ۱۲:۴۱

abstract class notification{
    protected $params;
    public abstract function send();
}
class sendsms extends notification{
    public function send()
    {
        //send sms
    }
}
class sendemail extends notification{
    public function send()
    {
        //send email
    }
}
دری اللهیاری ۱۲ فروردین ۱۴۰۱، ۱۲:۴۸

ببخشید کد‌ها کامل نیست فقط به صورت کلی خواستم بپرسم میشه به این صورت هم انجام داد؟

دری اللهیاری ۱۲ فروردین ۱۴۰۱، ۱۲:۴۹

سلام بله این مثال میتونه درست باشه

چون داخل این اصل گفته شده که کلاس‌ها برای تغییر باید بسته باشند و تغییر نکنند ولی قابلیت توسعه داشته باشند. در مثال شما داخل کلاس نوتیفیکشین هیچ تغییری ایجاد نشده و شما اومدید ارسال نوتیفیکیشن به روش مختلف رو با کلاس‌های جدا انجام داد و کلاس notification رو توسعه دادید و طبق توضیحات این اصل عملکرد شما درست هست.

بهترین پاسخ
نوری خداپناهی ۱۲ فروردین ۱۴۰۱، ۱۳:۴۳