من أهم مبادئ تصميم البرمجيات هو Open/Closed Principle (OCP).
المبدأ ده بيقول إن:
الكود لازم يكون مفتوح للتوسعة (Open for Extension)
لكنه مغلق للتعديل (Closed for Modification).
بمعنى إيه الكلام ده؟
في المشاريع الحقيقية، النظام بيتطور باستمرار:
Features
جديدة بتتضاف، ومتطلبات بتتغير.
لو كل Feature جديدة بتخلينا نرجع نعدل في الكود القديم، غالبًا ده بيؤدي إلى:
ظهور Bugs في أجزاء كانت شغالة كويس
صعوبة صيانة الكود
زيادة تعقيد النظام مع الوقت
هنا بييجي دور Open/Closed Principle.
بدل ما نعدل الكود الموجود كل مرة نضيف Feature جديدة،
بنصمم الكود بطريقة تسمح لنا نضيف سلوك جديد عن طريق التوسعة (Extension)
بدون ما نغير الكود الأساسي.