پسر کو ندارد نشان از پدر، تو بيگانه خوانش، مخوانش پسر!
این اصل بر خلاف اسم سختش، شاید ساده ترین اصل SOLID باشه. کلاس فرزند باید به طور کامل کلاس والد رو پیاده سازی کرده باشه. یعنی اگر جایی از کلاس والد استفاده میکردین و بنا به شرایطی مجبور شدین یکی از کلاس های فرزند رو جایگذین کنید، نباید مجبور به تغییر دیگه ای در کدتون بشید، و همه ی کدها باید به درستی و مشابه قبل کار کنن.
نکته1: هر جا در کدتون دیدین که در یک کلاس فرزند تابعی دارین که یکی از توابع والد رو در دل خودش داره و در بدنه ی اون تابع throw NotImplementedException گذاشتین باید به معماریتون شک کنید.
نکته2: همه ی برنامه ها بدون رعایت اصل SOLID هم کار میکنن. SOLID جایی مهم میشه که میبینین برای یک توسعه ی کوچک باید تغییرات زیادی داده بشه. یا باگی در سیستم پیدا میکنین که برای رفعش میبینید این خانه از پایه ویران است.