من ضمن المصطلحات المهمه الموجودة في ال OOD هو مصطلح SOLID وهو اختصار لعدة عمليات خلينا نشرحها ببساطة.
Class should have one responsibility.
سبب واحد انك تغير الكلاس
يعني مينفعش تخلي الكلاس بتاعك يقوم بكل المهام في البرنامج او حتى مهام ملهاش علاقة ببعض، لازم لكل كلاس مهمه محدده ومعروفه، ومعروف انت رايح تعدل فين بالظبط اللي ليه علاقة بالوظيفة.
Codebase Should be open for extension and close for modifications.
أزود اه إنما معدلش في الكود
يعني الكود بتاعك يكون Flexible في طريقة كتابته بحيث لما تحب تعمل function تبقى ثابته في الكور من غير اما تتعدل مثلاً ب if conditions او switch statements ولكن تتعدل عن طريق الobjects اللي هتتبعتلها اللي على اساسها هيكون الoutput.
Object from Child and Parent Classes should have similar functionalities.
اقدر استعمل اي واحد من الparent او الchild واتوقع ان السلوك يبقى واحد
بمعنى مينفعش ت override وظائف ال parent class بشكل عشوائي ويكون نتيجة functions مختلفه من ال parent او ال child.
Interfaces should be meaningful to one functionality.
قسم ال interface الكبيرة ل interfaces صغيرة محدده
بمعنى ان ال interfaces مينفعش تبقى لاكتر من حاجه احتمال كبير مستخدمهاش ولكن المفروض تبقى blue print لحاجات محدده احتمال كبير استخدمها في وظيفة محدده.
Higher level modules can’t depend on lower level modules
مينفعش ال higher level modules تعتمد على lower level modules ولكن لازم أحط abstraction layer في النص واخلي الاتنين يعتمدوا عليهم وبالتالي يحصل عكس في ال dependency.