الفرق بين حبوب المفرد الربيع وأنماط المفرد هو أنها مرتبطة ببيئات مختلفة. تشير أنماط Singleton إلى مثيل واحد فقط في عملية JVM ، بينما يشير Spring Singleton إلى مثيل واحد فقط في حاوية الفاصوليا الربيع (ApplicationContext).
أولاً ، انظر إلى نمط المفرد. في عملية JVM (من الناحية النظرية ، يجب أن يكون لبرنامج Java قيد التشغيل JVM المستقل الخاص به) هناك مثيل واحد فقط ، لذلك بغض النظر عن المكان الذي يتم فيه الحصول على المثيل في البرنامج ، يتم إرجاع نفس الكائن دائمًا. أخذ وقت التشغيل المدمج في Java كمثال (التعداد هو الآن أفضل ممارسة لنمط Singleton) ، بغض النظر عن مكان الحصول على الوقت والمكان ، يكون الحكم التالي صحيحًا دائمًا:
// استنادًا إلى الوضع الكسول // لا يوجد دائمًا مثيل واحد فقط في وقت تشغيل مثيل JVM.
في المقابل ، ترتبط حبوب Singleton Singleton ارتباطًا وثيقًا بحاوياتها (ApplicationContext). لذلك ، في عملية JVM ، إذا كانت هناك حاويات زنبركية متعددة ، فإن حبة Singleton ستقوم بالتأكيد بإنشاء مثيلات متعددة. مثال الكود كما يلي:
// أول تطبيق حاوية Spring Bean Context_1 = ملفات fileystemxmlapplicationcontext ("classpath: /applicationContext.xml") ؛ person yiifaa_1 = context_1.getBean ("yiifaa" ، person.class) ؛ // الحاوية الثانية الحاوية spring bean context_2 = ملفات fileystemxmlapplicationcontext (classpath: /applicationContext.xml " person yiifaa_2 = context_2.getBean ("yiifaa" ، person.class) ؛ // هذا بالتأكيد ليس متساويًا ، لأنه يتم إنشاء مثيلات متعددة system.out.println (yiifaa_1 == yiifaa_2) ؛هنا ملف تكوين الربيع:
<!-حتى لو تم إعلانه كفرد ، سيتم إنشاء مثيلات متعددة طالما أن هناك حاويات متعددة-> <bean id = "yiifaa" scope = "singleton"> <constructor-arg name = "username"> <value> yiifaa </value>
لخص
ترتبط حبوب Spring's Singleton ارتباطًا وثيقًا بحاويات إدارة فول الربيع. ستقوم كل حاوية بإنشاء مثيلها الفريد الخاص ، لذلك يختلف تمامًا عن نمط Singleton في نمط تصميم GOF. ومع ذلك ، في التطبيقات الفعلية ، إذا تم تسليم دورة حياة الكائن بالكامل إلى إدارة الربيع (لا يتم إنشاؤها بواسطة التفكير الجديد ، وما إلى ذلك في مكان آخر) ، يمكن تحقيق تأثير نمط المفرد.
ما سبق يدور حول هذا المقال الذي يناقش الفرق بين طراز الربيع المفرد ونموذج سينجلتون. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!