الدرس 4: ISP والواجهات المركزة
هل رأيت يومًا صنفًا يطبّق واجهة ثم يرمي NotSupportedException في نصف الدوال؟ هذا هو الألم الذي تسببه الواجهة السمينة: كل عميل يُجَرّ إلى الاعتماد على عمليات لا يحتاجها، وأي تغيير في الواجهة يكسر أصنافًا لا علاقة لها بها. في هذا الدرس نقسّم واجهة آلة مكتبية سمينة إلى واجهات أدوار صغيرة — ونرى كيف يصب
ISP يشبه تقسيم قائمة طعام ضخمة إلى عدة قوائم صغيرة: من يريد قهوة فقط يحصل على صفحة واحدة قصيرة، لا على كُتيّب من 200 صفحة.
- مبدأ فصل الواجهات (ISP)
- لا ينبغي أن يعتمد العميل على دوال لا يستخدمها — قسّم واجهة واسعة إلى عدة واجهات أدوار صغيرة ومركزة.
- واجهة سمينة
- واجهة تُجبر المُطبِّقين على توفير دوال غير ذات صلة بهم. العَرَض الكلاسيكي: دوال تكتفي برمي NotSupportedException.