هل يجب إعطاء الخدمة إشارة إلى أخرى ، أم هل يجب أن يحصل المتصل على مسؤولية إضافية؟

StackOverflow https://stackoverflow.com/questions/1597784

سؤال

هناك فئتان في مشروعي (باستخدام ASP.NET MVC): Authenticationservice ، و Felfileservice. عندما يسجل مستخدم جديد في موقعي ، يقوم إجراء تسجيل وحدة التحكم في المصادقة بتسجيل طريقة التسجيل في iAuthenticationservice ، والذي ينشئ سجل مصادقة للمستخدم وفقًا لأي وحدة مصادقة ملموسة تشير إليها الواجهة (تم حقنها في مُنشئ وحدة التحكم). كجزء من عملية التسجيل ، يتم إنشاء سجل ملف تعريف للمستخدم ، والذي يتم إنشاؤه عن طريق استدعاء CreateProfile (مستخدم) على eprofileservice المحقونة.

في الوقت الحالي ، تقوم وحدة التحكم باستدعاء كلا الخدمتين ، لكني أحب فكرة أداء وحدة التحكم الخاصة بي كمنطق العمل القليل قدر الإمكان. أتساءل عما إذا كان لدي أي خيارات أخرى إلى جانب السماح لخدمة المصادقة بمعرفة خدمة الملف الشخصي ، والتي بدورها تتطلب أي تنفيذ مستقبلي لـ iAuthenticationservice لمعرفة استدعاء CreateProfile؟ لا يسعني إلا أن أشعر أن رائحة رمز مكتوبة في كل مكان.

الاحتمال الآخر هو أن يكون لديك خدمة ثالثة ، {i ،} registrationservice ، تكون مسؤولة عن المنطق.

ما هي الطريقة الموصى بها أو المفضلة للتعامل مع هذا الموقف؟ شكرًا

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

المحلول

أنا أحب النهج الثالث. لديّ موقف مماثل في تطبيقي حيث تحتاج وحدة التحكم إلى خدمات متعددة لمستوى المجال لأداء مهمة ، ويحصل الرمز على مطوّل قليلاً لوحدة التحكم. على وجه الخصوص ، لدي نظام لإدارة الأحداث الذي يسمح بتحميل الصور. بالإضافة إلى المستودعات و IauthService ، يتم التعامل مع التخزين المادي بواسطة نظام Ifilesystem (يمكننا التبديل بين S3 و S3) ، معالجة الصور بواسطة ithumbnailer ، الكنس/التنظيف التي يتم التعامل معها بواسطة ibackgroundtask.

ما بدأت في القيام به هو إنشاء خدمات تطبيق بالإضافة إلى خدمات المجال للتعامل مع المسؤولية ، بحيث يتم حقن الحاوية الآن فقط مع خدمات التطبيق (الخيار 3 في قضيتك)

نصائح أخرى

أود أن أذهب مع {i} registrationservice الذي يعتمد على خدمات iAuthenticationservice و iProfile.

كقاعدة عامة ، أهدف إلى الحصول على تبعية خدمة واحدة لكل وحدة تحكم

إذا تم تكليف وحدة التحكم بتسجيل المستخدمين وإنشاء ملفات تعريف ، فما الأمر؟ لا بأس أن تتصل وحدة التحكم بخدمات متعددة. يخدم وحدة التحكم غرضًا ولا يجب أن يكون حبيبًا بجنون.

من المحتمل أن يكون إنشاء وحدة تحكم ثالثة للتسجيل العام الذي يستخدم مرجع واجهة للمصادقة والملف الشخصي هو الطريق الأفضل. ثم المصادقة والملامح غير مقترنة.

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