سؤال

لدي الكائنات التالية:

الشخص <- الاتصال-> ClientsPerson <- العميل

أنا أستخدم نمط المستودع مع طبقة خدمة. لكن هنا بالفعل ، كوني مثالي ، لقد فقدت!

لديّ أيضًا خدمة مراقبة ، و CustomerService ، وأنا متأكد تمامًا من أنني بحاجة إلى الحصول على اتصالات يجب أن تتصل بـ ProfoNservice.Add (Person) و ClientsPersonservice.add (العميل) - أو؟

الوظيفة هي إضافة جهة اتصال. سيكون لجهة الاتصال كائن شخص مرتبط ، وكائن عملاء. وأن العملاء سوف OFC. لديك عميل.

إلى أين يجب أن تذهب الوظائف المختلفة؟ لقد سمعت أنه من السيء استدعاء خدمة/مستودع من واحد إلى آخر.

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

المحلول

تعتمد هذه الإجابة على ORM وكيف تنقذها. سوف نفترض أنك لا تستخدم ORM يتغير Cascades.

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

في مثالك ، سأقوم ببناء الخدمة والتعلق بالكيانات اللازمة والتحدث إلى Repos لإنقاذها ؛ وبهذه الطريقة ، إذا كانت هناك مشكلة على طول طريق التحدث إلى Repos ، فيمكنها أن تتراجع وتفعل أي تنظيف ضروري.

يجب أن تكون repos غبية نسبيا. يجب أن تقوم الخدمات بالعلاقة والعمل التجاري (باستثناء شيء مثل NHIB ، وربما حتى ذلك الحين).

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