Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

5 تغريدة 28 قراءة Nov 23, 2019
أحد مباديء SOLID لبرمجة الOOP هو
Liskov Substitution Principle
و تكلمت عنه سابقاً لكن باختصار ينص على انه لما نسوي توريث Inheritance من كلاس فلازم الكلاس الابن يكون قادر على انه يورث كل الصفات من الكلاس الأب.
هذا المبدأ تصحيح لعلاقة is-a العامة مثلا لما نقول أن العصفور is-a طير صحيح . لكن ظهرت لنا مشكلة لما نقول ان البطريق is-a طير . فالعصفور ممكن يطير لكن البطريق لا . فنعدل كلاس الطير بأن نضع فيه property اسمه canFly مثلا . هنا تظهر فائدة مثل هذه المباديء.
مبدأ ليسكوف نسبة للبروفيسورة Barbara Liskov و التي صممت في الستينات و السبعينات "كمبيوتر" ( instruction sets ) اسمته Venus Machine و صممت نظام تشغيل ايضا اسمته Venus OS ثم لغة برمجة اسمها CLU على ذلك النظام.
لغة CLU كان الهدف منها اثبات عملي لفكرتها عن الAbstract Data Type و الذي حصلت بسببه على جائزة Turing Award . جمال الADT نراه مثلاً في الList و التي قد تحتوي اي نوع من البيانات و مع ذلك نستطيع التعامل معها بغض النظر عن نوعها فنقوم بعمليات مثل insert و remove و size !.
توجد محاضرات للبروفيسورة Liskov في اليوتيوب ايضا لها كتب جميلة منها Program Development in Java. الاستماع و القراءة لمثل هؤلاء مهم بدل الكتب و الدروس السطحية.

جاري تحميل الاقتراحات...