SOLID Principles: 2- Open/Close Principle (OCP) [بالعربي]
By Passionate Coders | محمد المهدي · more summaries from this channel
12 min video·ar··9137 views
Summary
يشرح الفيديو مبدأ التصميم المفتوح والمغلق (Open/Closed Principle) في البرمجة، والذي ينص على أن كيانات البرمجيات يجب أن تكون مفتوحة للتوسع ولكن مغلقة للتعديل، مع توضيح كيفية تطبيقه باستخدام الوراثة (Inheritance) لإنشاء أنواع مختلفة من الموظفين وحساب رواتبهم دون تعديل الكلاس الأساسي.
Key Points
- —بمجرد أن تصل الكلاس إلى مرحلة الاستقرار وتؤدي وظيفتها الأساسية بشكل ممتاز، يجب عدم تعديلها مباشرة.
- —يوضح الفيديو مثالاً عملياً لكلاس `SalaryCalculator` لحساب رواتب الموظفين، وكيف أن تعديلها المتكرر لإضافة أنواع جديدة من الموظفين يخالف مبدأ OCP.
- —تم اقتراح حل باستخدام الوراثة لإنشاء كلاسات فرعية منفصلة لكل نوع من الموظفين (مثل `SalariedEmployee`, `InternEmployee`, `FreelancerEmployee`).
- —هذا النهج يسمح بإضافة أنواع جديدة من الموظفين في المستقبل عن طريق إنشاء كلاسات فرعية جديدة دون التأثير على الكلاسات الموجودة أو تعديلها.
- —ينص مبدأ التصميم المفتوح والمغلق (OCP) على أن كيانات البرمجيات (مثل الكلاسات) يجب أن تكون مفتوحة للتوسع ولكن مغلقة للتعديل.
- —الهدف هو عزل الأجزاء المتغيرة من الكود في وحدات جديدة بدلاً من تعديل الأجزاء المستقرة.
- —عند الحاجة لتعديل أو إضافة وظائف جديدة، يجب إنشاء كلاسات جديدة أو استخدام آليات مثل الوراثة لتوسيع السلوك دون تغيير الكود الأصلي.
- —كل كلاس فرعي مسؤول عن حساب راتب نوع معين من الموظفين، مما يحافظ على الكلاس الأساسي مغلقًا للتعديل.
- —تطبيق المبدأ يضمن استقرار الكود الأساسي ويسهل عملية إضافة ميزات جديدة بأمان وفعالية.
- —يتم ربط مبدأ OCP بمبادئ أخرى مثل مبدأ المسؤولية الواحدة (SRP) ومبدأ الاستراتيجية (Strategy Pattern)، حيث أن المبادئ التصميمية غالبًا ما تكون مترابطة.
Copy All
Share Link
Share as image
Bookmark
More Resources
Get key points from any YouTube video in seconds




