سؤال

ما هي الاختلافات بين نمط DTO(بواسطة فاولر) و نمط تذكار(بواسطة GOF) في جانب الدافع والجانب التنفيذ؟ هل يمكن أن تكون نفس الفصول؟ إذا كانت الإجابة بنعم ، كيف يمكنني تسميتها (xxxdto أو xxxmemento)؟ هل لديهم أي فرق رئيسي في التنفيذ؟ أين مكانهم في MVP هندسة معمارية؟

شكرًا.

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

المحلول

غالبًا ما يتم استخدام الاثنين في أشياء مختلفة جدًا - أين أنت مرتبك هنا؟ تدور DTO حول نقل البيانات (فئات الناقل) ، بينما يدور Memento حول تتبع التغييرات والسماح لك بتدحرج هذه التغييرات مرة أخرى. لست متأكدًا ، أبعد من ذلك ، ما الذي يربكك من سؤالك.

نصائح أخرى

أنها تخدم أغراض مختلفة. DTO هو نمط تصميم يستخدم لنقل الكائنات بين الطبقات و/أو مستويات تطبيق البرنامج. Memento من ناحية أخرى هو نمط تصميم آخر يسمح لأي كائن بتوفير إمكانية التراجع عن طريق تفريغ حالته والتي يمكن استعادتها لاحقًا إذا لزم الأمر. قد تبدو فئة DTO وفئة Memento للفئة متشابهة ، قديمة {إدراج تقنية هنا} - po؟ o أو تبدو متشابهة تمامًا. ومع ذلك ، يجب أن تبقى منفصلة لأنها ستخدم احتياجات مختلفة وبالتالي تتطور بشكل مختلف. على سبيل المثال ، قد تحتاج يومًا ما إلى تضمين خاصية في فصل DTO الخاص بك ، لكن نفس الخاصية ليست مهمة لإدارة حالة الكائن وبالتالي لا تحتاج إلى إضافتها إلى فئة Memento.

جانب آخر هو أن DTO عادة ما تتم خارج فصولك وليس فصولك ليس لديها أي فكرة كما ينبغي حول DTO. في الواقع ، هناك أطراف هناك تعتني برسم خرائط البيانات لك. لنمط Memento من ناحية أخرى ، ستحتاج فصولك إلى توفير واجهة برمجة تطبيقات كما تراه في مخططات UML مثل Creatememento ، Restorefrommemento إلخ.

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