المشاركات

عرض الرسائل ذات التصنيف مبادئ التصميم

ما هي مبادئ SOLID؟ ولما يجب أن يعرفها كل مطور؟ (الجزء الثاني)

صورة
SOLID 3. مبدأ "liskov" للاستبدال (LSP). ويعني أن الصنف الرئيسي يجب أن يكون قابل للاستبدال بالصنف المشتق منه. الهدف من هذا المبدأ هو التأكد أن الصنف المشتق يمكن أن يأخذ مكان الصنف الرئيسي بدون حدوث أي أخطاء. وإذا وجدت أن الكود يفحص نوع الصنف, فإنه بالتأكيد يخرق هذا المبدأ. لننظر إلى مثال الحيوانات ثانية: //... function AnimalLegCount(a: Array<Animal>) {     for(int i = 0; i <= a.length; i++) {         if(typeof a[i] == Lion)             log(LionLegCount(a[i]));         if(typeof a[i] == Mouse)             log(MouseLegCount(a[i]));         if(typeof a[i] == Snake)             log(SnakeLegCount(a[i]));      } } AnimalLegCount(animals); هذا الكود يخرق مبدأ LSPوكذلك مبد...

ما هي مبادئ SOLID؟ ولما يجب أن يعرفها كل مطور؟

صورة
  الصورة www.dereuromark.de البرمجة كائنية التوجه جاءت بأسلوب جديد في تطوير البرمجيات. مما يمكن المطورين من دمج البيانات ذات الخصائص المتشابهة في كائن واحد للتعامل معها بشك موحد. ولكن هذا الأسلوب في البرمجة لا يحد من الكود المربك وغير المفهوم مما يجعل الكود غير قابل للإصلاح. ولهذا فقد طورت خمسة مبادئ رئيسية من قبل "Robert C. Martin", وهذه المبادئ الخمسة جعلت من السهل إنشاء برامج سهلة القراءة والإصلاح. وهذه المبادئ الخمسة تسمى " S.O.L.I.D ". S: مبدأ المسئولية الواحدة (Single Responsibility principle). O: مبدأ المفتوح المغلق (Open-Closed principle). L: مبدأ "liskov" للاستبدال (Liskov Substitution Principle). I: مبدأ فصل الواجهات (Interface Segregation Principle). D: مبدأ انعكاس التبعية (Dependency Inversion Principle). وسوف نناقش كل مبدأ على حدا بالتفصيل. ملاحظة: كثير من الأمثلة المذكورة في هذه المقالة قد تكون غير صالحة للتطبيق في البرمجيات الفعلية, فكل شيء يعتمد على تصميمك الخاص وعلى طريقة استخدامه. أهم شيء هنا أن تفهم هذه المبادئ ...