पहले उपयोग में शुरू किए गए सिंगलेट्स की बजाय आईओसी (नियंत्रण में उलटा) का उपयोग अन्य कारणों से भी फायदेमंद है।
सिंगलटन-प्रारंभिकरण बहु-थ्रेडिंग मुद्दों से (प्रसिद्ध रूप से) पीड़ित हो सकता है जहां दो धागे इसे पहली बार एक्सेस करने का प्रयास करते हैं। बाद में पहुंच सही ढंग से सिंकोनिज्ड होने की संभावना है लेकिन पहले व्यक्ति को करना बहुत मुश्किल है।
आईओसी का उपयोग करने के लिए मुझे एक और बड़ा फायदा मिला है जब प्रारंभिकरण में कोई त्रुटि हो सकती है। आप यह नहीं चाहते कि यह "पहले उपयोग" पर हो, आप इस विफलता को शुरुआती चरण में जानना चाहते हैं, और निश्चित रूप से इस तरह से त्रुटि को संभालना आसान है।
अंत में, परीक्षण के संबंध में, आईओसी घटकों को अलग करने के लिए एक आदर्श मॉडल प्रदान करता है, उन्हें आवश्यकतानुसार प्रतिस्थापित करता है और एक और अधिक लचीला तरीके से अलग संयोजनों को एक साथ लाता है, इस प्रकार यूनिट-परीक्षण और एकीकरण परीक्षण दोनों के लिए सही दोहन प्रदान करता है वास्तव में किसी भी कोड को वापस करने के बिना एक अच्छा रोलबैक तंत्र के रूप में अच्छी तरह से।
सामान्य कारण सिंगलटन का उपयोग अक्सर एक-नस्ल के लिए नहीं बल्कि वैश्विक-नस्ल के लिए किया जाता है। यदि आपकी परियोजना सही तरीके से प्रबंधित की जाती है तो आपके पास एक वैश्विक वस्तु है जिसके लिए अन्य सभी "रजिस्टर" (इस प्रकार आपका आईओसी मॉडल इसे बंद कर देता है) और अभी भी कॉन्फ़िगर करने योग्य होने पर विश्व स्तर पर उपलब्ध हैं।
बिल्कुल सही - आईओसी इस सामान के लिए जाने का तरीका है –