🚀 من همیشه اصول پایه ای رو دوست دارم، برای همین خیلی وقت ها برای خودم مرورشون می کنم.
امروز داشتم OOP رو مطالعه می کردم، برای همین گفتم با شما هم Share کنم :
در برنامهنویسی شیءگرا (Object-Oriented Programming – OOP)، مفاهیمی معرفی میشند که هدفشان سادهسازی طراحی، توسعه و نگهداشت کد هست که عبارت اند از :
Encapsulation: پنهان کردن جزئیات و ارائه واسط عمومی
Abstraction: سادهسازی و انتزاعسازی مفاهیم بدون نمایش جزئیات غیرضروری
Inheritance: استفادهی مجدد از کد و ایجاد سلسلهمراتب بین کلاسها
Polymorphism: رفتارهای مختلف برای یک متد واحد بسته به کلاس یا نوع شیء
@learning_with_m
که می دونیم که Polymorphism دو نوع داره که شامل :
Overriding: اگر کلاس فرزند متدی را که در کلاس والد تعریف شده بازتعریف کند، بسته به نوع شیء در زمان اجرا متد مناسب صدا زده میشود. (Runtime polymorphism)
Overloading: در یک کلاس چند متد با نام یکسان ولی پارامترهای متفاوت تعریف میکنیم، و بسته به تعداد و نوع پارامترها، متد مناسب در زمان کامپایل انتخاب میشود. (Compile-time polymorphism)
امروز داشتم OOP رو مطالعه می کردم، برای همین گفتم با شما هم Share کنم :
در برنامهنویسی شیءگرا (Object-Oriented Programming – OOP)، مفاهیمی معرفی میشند که هدفشان سادهسازی طراحی، توسعه و نگهداشت کد هست که عبارت اند از :
Encapsulation: پنهان کردن جزئیات و ارائه واسط عمومی
Abstraction: سادهسازی و انتزاعسازی مفاهیم بدون نمایش جزئیات غیرضروری
Inheritance: استفادهی مجدد از کد و ایجاد سلسلهمراتب بین کلاسها
Polymorphism: رفتارهای مختلف برای یک متد واحد بسته به کلاس یا نوع شیء
@learning_with_m
که می دونیم که Polymorphism دو نوع داره که شامل :
Overriding: اگر کلاس فرزند متدی را که در کلاس والد تعریف شده بازتعریف کند، بسته به نوع شیء در زمان اجرا متد مناسب صدا زده میشود. (Runtime polymorphism)
Overloading: در یک کلاس چند متد با نام یکسان ولی پارامترهای متفاوت تعریف میکنیم، و بسته به تعداد و نوع پارامترها، متد مناسب در زمان کامپایل انتخاب میشود. (Compile-time polymorphism)
❓ حالا شما به من بگید، در S.O.L.I.D، حرف L که برای Liskov Substitution Principle (LSP) هست، کدوم یکی از مفاهیم بالا رو هدف قرار داده ؟ اصلا چه ربطی بین LSP و مفاهیم بالا هست ؟