سؤال

أنا أعمل حاليًا على مشروع يدعم مواصفات كتابة ملفات متعددة (تخيل لو كان عليك دعم شيء مثل XML 1.0، XML 2.0، XML 3.0، إلخ) يسمى ADIF.يوجد حاليًا معياران (الإصدار 1.0 والإصدار 2.2.2)، وكلاهما يستخدم تجاريًا ولا يزال كلاهما مستخدمًا بكثافة.

يتضمن إصدار المواصفات 2.2.2 الكثير من الإصدار 1.0 ولكن هناك بعض الاختلافات الطفيفة التي تستبعد بعض الميراث وأدوات OOP الأخرى.

كيف يمكنك تنظيم مشروعك لدعم الإصدارات الأقدم، مع الاستمرار في مواكبة المعايير الجديدة؟

  • مساحات الأسماء (Standard.Version1، Standard.Version222، Standard.Version223 (الإصدار التالي؟)، وما إلى ذلك) في مكتبة فئة واحدة؟يبدو قذرة.
  • مكتبة فئة منفصلة لكل منها في نفس الحل (Version222.dll، Version223.dll، وما إلى ذلك)؟يبدو مفرطا.
  • إلخ.

أنوي تنفيذ بعض التعليمات البرمجية التي سيتم تحويلها من إصدار إلى آخر.

في الأساس، أنا أبحث عن بعض النصائح حول أفضل طريقة لتنظيم هذا النوع من المشاريع.

http://www.adif.org/

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

المحلول

لقد ذكرت أنه لا يوجد تسلسل هرمي جيد للميراث يمكنك تنفيذه؟

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

أي.سيقبل الإصدار 2.2.2 API لديك كائنات الإصدار 2.2.2 فقط لمنع حدوث مشكلات في المكتبة.موفق في كل ما يتم تنفيذه :)

نصائح أخرى

يتضمن إصدار المواصفات 2.2.2 الكثير من الإصدار 1.0 ولكن هناك بعض الاختلافات الطفيفة التي تستبعد بعض الميراث وأدوات OOP الأخرى.

يمكن أن يكون تكوين الكائن أداة أقوى بكثير لـ OOP من الميراث، وهو ما يتم الإفراط في استخدام IMO.

ما هي الطرق التي يمكنك العثور عليها لتقسيم المشكلة إلى أنظمة فرعية أبسط؟

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