تكرار السؤال: …
الإجابة المختصرة
لأنه لا ينبغي إجبار أي عميل برمجي على الاعتماد على دوال أو واجهات لا يستخدمها، مما يمنع الاقتران غير الضروري وإعادة الترجمة غير المبررة.
الشرح
عندما تحتوي الواجهة على عشرات الدوال المتنوعة (God Interface)، فإن أي فئة تطبقها ستضطر لكتابة دوال فارغة أو رمي أخطاء للوظائف التي لا تلزمها، وأي تعديل على دالة واحدة في الواجهة يجبر جميع الفئات المطبقة لها على إعادة الترجمة والاختبار. الحل هو تقسيم الواجهة الضخمة إلى واجهات أصغر وأدق تركز على أدوار محددة (Role Interfaces).
مثال بالكود
// واجهات مفصولة بدقة:
interface Printer {
print(doc: Document): void;
}
interface Scanner {
scan(): Document;
}
class BasicPrinter implements Printer {
print(doc: Document) { /*...*/ }
}أخطاء شائعة
- دمج كل عمليات CRUD وعمليات التقارير وعمليات التصدير في واجهة مستودع موحدة وعريضة لكل الكيانات.