تصميم نمط تحليل ملف ثنائي البيانات وتخزينها في قاعدة البيانات

StackOverflow https://stackoverflow.com/questions/11680

  •  08-06-2019
  •  | 
  •  

سؤال

لا أحد يوصي تصميم نمط أخذ الثنائية ملف البيانات ، تحليل أجزاء منه في الأجسام و تخزين الناتج البيانات في قاعدة البيانات ؟

أعتقد نمط مماثل يمكن أن تستخدم في اتخاذ XML أو المفصول الملف وتحليل ذلك إلى ممثل الكائنات.

مشترك بنية البيانات تشمل:

(رأس) (DataElement1) (DataElement1SubData1) (DataElement1SubData2)(DataElement2) (DataElement2SubData1) (DataElement2SubData2) (EOF)

أعتقد أن التصميم الجيد أن تشمل طريقة تغيير تحليل التعريف القائم على نوع الملف أو بعض تعريف البيانات الوصفية المضمنة في الرأس.لذلك نمط مصنع أن تكون جزءا من التصميم العام محلل جزء.

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

المحلول

  1. مجرد كتابة الملف محلل باستخدام أي تقنيات تتبادر إلى الذهن
  2. كتابة الكثير من وحدة الاختبارات عليه للتأكد من أن كل الحالات حافة مغطاة

مرة واحدة كنت قد فعلت هذا ، سوف يكون في الواقع فكرة معقولة المشكلة/الحل.

الآن لديك فقط النظريات التي تطوف في رأسك أكثر من التي سوف تتحول إلى أن تكون مضللة.

الخطوة 3:ريفاكتور بلا رحمة.ينبغي أن يكون الهدف الخاص إلى حذف حوالي نصف من التعليمات البرمجية الخاصة بك

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

نصائح أخرى

وأنا أتفق تماما مع أوريون إدواردز ، وعادة ما طريقة النهج المشكلة ؛ ولكن في الآونة الأخيرة لقد بدأنا نرى بعض أنماط(!) إلى الجنون.

لمزيد من المهام المعقدة وعادة ما تستخدم شيئا مثل مترجم (أو استراتيجية) يستخدم بعض باني (أو مصنع) إنشاء كل جزء من البيانات.

لتدفق البيانات ، كامل محلل ننظر بشيء من مثل محول, وتكييفها من تيار كائن إلى كائن تيار (والتي عادة ما تكون مجرد طابور).

على سبيل المثال الخاص بك لن يكون على الارجح واحدة باني كامل هيكل البيانات (من الرأس إلى EOF) الذي يستخدم داخليا بناه الداخلية عناصر البيانات (بنك الاحتياطي الفيدرالي من قبل المترجم).مرة واحدة EOF واجه كائن سيكون المنبعثة.

بيد أن الكائنات التي تم إنشاؤها في بيان التبديل في بعض مصنع وظيفة هو على الارجح أبسط طريقة هي أقل من المهام.أيضا, أنا أحب حفظ البيانات-كائنات ثابتة كما أنت لا تعرف أبدا عندما يقوم شخص ما الدفعات التزامن الخاصة بك أسفل الحلق :)

نمط استراتيجية ربما هو واحد كنت تريد أن ننظر إلى.استراتيجية كونها ملف تحليل الخوارزمية.

ثم كنت تريد استراتيجية منفصلة عن قاعدة بيانات الإدراج.

استخدام ليكس و YACC.إلا إذا كنت تكريس السنوات العشر القادمة حصريا هذا الموضوع ، فإنها سوف تنتج أفضل وأسرع رمز في كل مرة.

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