كائن نقل البيانات
في مجال البرمجة، يعتبر كائن نقل البيانات (بالإنجليزية: DTO)[1][2] كائنًا يحمل البيانات بين العمليات. الدافع وراء استخدامه هو أن الاتصال بين العمليات يتم عادةً باللجوء إلى الواجهات البعيدة (مثل خدمات الويب)، حيث تكون كل استدعاء عملية مكلفة. نظرًا لأن غالبية تكلفة كل استدعاء مرتبط بوقت الذهاب والإياب بين العميل والخادم، فإن إحدى طرق تقليل عدد الاستدعاءات هي استخدام كائن نقل بيانات يجمع البيانات التي كان من الممكن نقلها من خلال عدة استدعاءات، ولكن يتم تقديمها من خلال استدعاء واحد فقط.
الفرق بين كائنات نقل البيانات و كائنات الأعمال أو كائنات الوصول إلى البيانات(بالإنجليزية: DAO) هو أن كائنات نقل البيانات ليس لديها أي سلوك باستثناء تخزين المعلومات واسترجاعها، والتسلسل وإلغاء التسلسل من البيانات الخاصة به (طرق الموصّل والمحوّر والمدير والطريقة المتسلسلة). بعبارة أخرى، كائنات نقل البيانات هي كائنات بسيطة لا ينبغي أن تحتوي على أي منطقية للأعمال ولكن قد تحتوي على آليات التسلسل وإلغاء التسلسل لنقل البيانات عبر السلك.[1]
غالبًا ما يتم استخدام هذا النمط بشكل غير صحيح خارج الواجهات البعيدة. وقد أثار ذلك ردًا من مؤلفها [3] حيث أكد أن الغرض الكامل من كائنات نقل البيانات هو تحويل البيانات في الاستدعاءات البعيدة باهظة الثمن.
المصطلح
كائن القيمة (بالإنجليزية: value object) ليس كائن نقل بيانات. تم الخلط بين المصطلحين من قبل مطوري جافا في الماضي.[2]
المراجع
- MSDN (2010). Data Transfer Object. Microsoft MSDN Library. Retrieved from https://msdn.microsoft.com/en-us/library/ms978717.aspx. نسخة محفوظة 2017-09-12 على موقع واي باك مشين.
- Fowler, Martin (2010). Data Transfer Object. Patterns of Enterprise Application Architecture. Retrieved from http://martinfowler.com/eaaCatalog/dataTransferObject.html. نسخة محفوظة 2021-01-26 على موقع واي باك مشين.
- LocalDTO. Retrieved from http://martinfowler.com/bliki/LocalDTO.html. نسخة محفوظة 2021-01-26 على موقع واي باك مشين.
روابط خارجية
- ملخص من كتاب فاولر
- كائن نقل البيانات - مكتبة MSDN Microsoft
- GeDA - مُجمّع dto العام هو إطار عمل Java مفتوح المصدر للحلول على مستوى المؤسسة
- DTO المحلي
- بوابة علم الحاسوب