سلام استاد مدائنی
خیلی ممنون از آموزش خوبتون
یه سوال داشتم
در دوره مقدماتی سی شارپ برای ساخت ماشین حساب اومدید از چندریختی استفاده کردید
ICalculate calc = new Calculate()
چرا مستقیم از خود کلاس Calculate استفاده نکردید ؟
من خودم مستقیم از Calculate استفاده کردم و درست کار میکرد
فقط دلیل استفاده شما از چندریختی رو متوجه نشدم
سلام دوست عزیز
بله قطعا کار می کنه
ولی دلیل ما برای استفاده از اینترفیس و چند ریختی چیز دیگری است
برای مثال شما یک اینترفیس برای ارسال ایمیل تعریف می کنید که یک متد ارسال در آن تعریف شده است و هر کلاسی از آن ارث بری کند موظف است آن متد را ایمپلیمنت کند
حاللا یک کلاس می سازیم به نام GmailSender و یک کلاس به نام YahooSender و در هر دو کلاس از اینترفیس ارث بری می کنیم و متد ارسال ایمیل را کامل می کنیم
حالا برای استفاده و نمونه سازی ابتدا از GmailSender استفاده می کنیم
IEmailSender EmailSender = new GmailSender()
و برای ارسال ایمیل از این اینستنس ساخته شده استفاده می کنیم
ولی فرضا گوگل ما را تحریم می کند و ما دیگر نمی توانیم از آن استفاده کنیم
در صورتی که کد را به این شکل پیاده سازی کرده باشیم تنها کاری که انجام می دهیم تغییر اینستنس است
IEmailSender EmailSender = new YahooSender ()
با این کار بدون تغییر زیاد کد ما می تونیم این مشکل رو کنترل کنیم
در کل مباحثی مربوط به چند ریختی یا تزریق وابستگی و غیره باعث میشن که در آینده توسعه پروژه راحت تر بشه
و حرف آخر هم این که اگر کد شما کار کنه خیلی خوبه ولی مهم اینه که شما تمیز کد بزنی، از معماری و دیزاین پترن ها استفاده کنی، اصول شی گرایی و سالید رو رعایت کنی تا پروژه شما یک پروژه تمیز و قابل توسعه باشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)