كيف يجب أن أبدأ عند تطوير نظام يعتمد على الوحدات النمطية أو المكونات الإضافية؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

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

يجب استخدام هذا النظام كأساس لأنظمة المحاكاة حيث يحدث الكثير من الأشياء في وحدات مختلفة، وقد ترغب الوحدات الأخرى في القيام بشيء بناءً على ذلك.

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

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

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

هو موضع تقدير أي ردود فعل.

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

المحلول

يجب عليك بالتأكيد أن تنظر OSGi.يهدف إلى أن يكون ال آلية المكون/البرنامج المساعد لجافا.يسمح لك بتعديل التعليمات البرمجية الخاصة بك (في ما يسمى بالحزم) وتحديث الحزم في وقت التشغيل.يمكنك أيضًا إخفاء حزم التنفيذ تمامًا من الوصول غير المرغوب فيه بواسطة الحزم الأخرى، على سبيل المثال.توفير API فقط.

كان Eclipse أول مشروع كبير مفتوح المصدر ينفذ OSGi ويستخدمه، لكنهم لم يستفيدوا منه بشكل كامل (لا توجد عمليات تثبيت/تحديثات للمكونات الإضافية دون إعادة التشغيل).إذا بدأت من الصفر، فسوف يمنحك إطارًا جيدًا جدًا لنظام المكونات الإضافية.

أباتشي فيليكس هو تطبيق كامل مفتوح المصدر (وهناك تطبيقات أخرى، مثل الاعتدال الكسوف).

نصائح أخرى

دون الخوض في تفاصيل كبيرة، يجب أن تنظر ربيع والتعرف على OSGI أو أطر عمل Eclipse RCP سيمنحك أيضًا بعض المفاهيم الأساسية التي ستحتاج إلى وضعها في الاعتبار.

خيار آخر هو محمل الخدمة تمت إضافته في Java 1.6.

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

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

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