سؤال

هل من المناسب على الإطلاق وضع وظائف بخلاف المستوطنين الأساسيين والغزاء في DTO؟

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

المحلول

حسنًا ، في عدد من السيناريوهات ، قد تحتاج إلى بعض رمز التسلسل (لأي واجهات تسلسل تتطلبها واجهة برمجة تطبيقات التسلسل - أشياء مثل IXmlSerializable / ISerializable في .NET) ، لكنني أعتقد أن هذا ليس ما تعنيه ...

هذا يعتمد حقا على السيناريو. إذا كان لديك نموذج كائن بسيط بما يكفي السماح يمكنك استخدام نموذج المجال الخاص بك للتسلسل ، ثم للمشاريع الصغيرة ، قد يكون هناك فائدة ضئيلة في تقسيمها - فصل عن مشكلة المخاوف؟ من المحتمل. هل ستتسبب في ألم طويل الأجل؟ ربما لا (على الأقل ، ليس إذا كنت تستخدم المسلسل القائم على العقد ، بحيث يمكنك تبديله دون أن يلاحظ أي شخص).

بالنسبة للنماذج الأكثر تعقيدًا ، ستحتاج غالبًا إلى نموذج DTO منفصل لنموذج المجال - وفي هذه الحالة قد تحتاج إلى مكان لوضع منطق التحويل (الأساليب / المشغلين / إلخ) بين المجال و DTO - لذلك الذي - التي قد تعيش هناك ، ولكن إذا كنت لديك حصلت على dto منفصلة من غير المرجح أن يكون لديها الكثير إضافي المنطق - هذا المنطق ينتمي بشكل أساسي في نموذج المجال وفئات الأعمال الأخرى.

نصائح أخرى

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

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