سؤال

وأنا في عملية تطوير متعدد المستويات تطبيق معالجة المالي في جافا باستخدام EJB3 (السبات + Glassfish للطبقة التطبيق وخدمات الويب، رفع على Glassfish لUI على شبكة الإنترنت)، وأنا أعاني مع السؤال من أين يضع منطق عملي.

وعندما بدأ هذا المشروع، وكانت الفكرة الأولى بالنسبة لنا لوضع الجزء الأكبر من المنطق أعمالنا في الفول جلسة عديمي الجنسية. مع مرور الوقت قد ذهب يوم، على الرغم من أننا قد وجدت في حقن التبعية التي تقدمها إطار EJB الحد جدا، لذلك قد انتهت الكثير من منطق الأعمال لدينا ما يصل في POJOs التي يتم تجميعها من قبل Guice في طريقةPostConstruct من الفاصوليا جلسة البدون . وقد أدى هذا التقدم إلى تفتيت المنطق أعمالنا بين حبوب الدورة وPOJOs، وأنا أحاول معرفة نهجا لتصحيح هذا.

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

وسؤالي الأساسي هو: ما المبادئ والخطوط التوجيهية يمكنك توحي لتحديد ما إذا كان منطق الأعمال يجب أن تذهب في الفول جلسة أو POJO؟ عندما لا معنى لتمرير الفاصوليا كيان حولها، بالنظر إلى الرسم البياني كائن معقد؟

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

المحلول

وأنا ناضلت مع هذا في حين أن بناء تطبيق الويب باستخدام JPA، EJB3، والنصيبة. منذ ضرب قاعدة البيانات الخاصة بي بجد مع الاستفسارات المتكررة كان أكثر قابلة للمن عقد الكثير من الكيانات الكبيرة في الذاكرة، قررت لتمرير فقط حول هويات وأبدا الكيان نفسه.

كان

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

لقد عملت هذه على نحو جيد بالنسبة لي، ولكن ليس لدي منطق الأعمال المعقدة للغاية ويمكن عزل أي تغييرات التي تحتاج إلى أن استمرت إلى وحدات صغيرة من المنطق وصفحة واحدة.

نصائح أخرى

وكلما كنت في حاجة العديد من الخدمات "النظام" (الحقن، الخ) استخدام الفول عديمي الجنسية. على خلاف ذلك - POJOs. POJOs هي أكثر مرونة بكثير.

ولكن بسيط (استرجاع؟) أساليب (على سبيل المثال في خدمات ويب والفاصوليا) يمكن أن يفعل بعض العمل بسيطة وترجع النتائج.

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