سؤال

لدي فهم ضبابي للجن ، لكن هل يعمل على حقن مقدمي الحقن ، إلخ.

أحاول حقن فئة "مستخدم" مصنوعة ذاتيًا في جميع مقدمي العروض من أجل الحصول على المستخدم المسجل حاليًا.

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

أنا أكره نشر هذا هنا (لا أبحث عن واجبات منزلية مجانية) ، لكن لا يمكنني العثور على برنامج تعليمي/مثال لائق على هذا في أي مكان آخر.

شكرا جزيلا مقدما.

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

المحلول

أرى احتمالين:

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

أنا أفضل وأستخدم النهج الثاني - في حين أن DI رائع ، فإن استخدامه بالطريقة التي وصفتها تبدو مخترقة لي. أوصي بشدة التحقق من وثائق GUICE - الجن هو في الأساس guice ملفوف بشكل جيد للعمل مع GWT ، وبالتالي فإن جوهر هو نفسه. بالنسبة لبعض المؤشرات الأخرى كيفية استخدام DI بشكل فعال ، وبشكل عام ، أكتب الكود القابل للاختبار ، أوصي بشدة مدونة Misko Hevery و ال دليل كتابة التعليمات البرمجية القابلة للاختبار وضع هناك (تستخدم داخليا بواسطة Google).

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