سؤال

كنت أبحث فقط في الكود المصدري لمشروع موجود يستخدم nhibernate ووجد أن هناك واجهات تم إنشاؤها لكل فئات كيان. على سبيل المثال icustomer ل عميل صف دراسي. كنت أتساءل فقط ما الذي يمكن أن يكون ميزة هذا النمط icustomer يحتوي بشكل أساسي على الخصائص والطرق القليلة جدًا.

هل كانت مفيدة؟

المحلول

أود أن أقول لا. واجهات تفصل السلوك عن التنفيذ بحيث يمكن تبديل الأخير دون التأثير على عملاء الواجهة.

لا أرى حاجة إلى واجهات إذا كانت كائنات المجال الخاصة بك لن تتطلب تطبيقات مختلفة. تقديمهم فقط إذا كان توليد الوكيل الديناميكي أو الجوانب أو التطبيقات المتغيرة ضرورية.

نصائح أخرى

لا أختلف مع التعليقات السابقة ... على الرغم من أن أنماط مثل انعكاس التحكم (IOC) وحقن التبعية ، إلا أنه يجعل عزل مثل هذه الطبقات من بعضها البعض أسهل بكثير. هذا يبسط اختبار الوحدة ، والسخرية ، ويمكن أن يؤدي أيضا إلى أكثر من بنيات مقترنة بشكل أكثر فضفاضة. لا يزال من الممكن تحقيق ذلك بدون واجهات على الرغم من أنك بحاجة إلى التأكد من عدم إغلاق فصولك وتجعل الأعضاء افتراضية حتى لا يزال بإمكانك السخرية بعد ذلك ، وإنشاء وكلاء مقاطع ، وما إلى ذلك ... أخيرًا ، فإن استخدام الواجهات يجبرك على إسقاط الافتراضات المتعلقة بأي شيء تطبيق ملموس واحد وبدلاً من ذلك يركز على العقد الذي يمثله تعريف الواجهة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top