जैसा कि हम कार्यक्रम करते हैं, हम सभी अभ्यास और पैटर्न विकसित करते हैं जो हम उपयोग करते हैं और भरोसा करते हैं। हालांकि, समय के साथ, हमारी समझ, परिपक्वता और यहां तक कि तकनीक के उपयोग में परिवर्तन के रूप में, हमें पता चलता है कि कुछ प्रथाएं जो हमने सोचा था कि एक बार महान थीं (या अब लागू नहीं होती हैं)।
एक अभ्यास का एक उदाहरण जो मैंने एक बार काफी बार उपयोग किया था, लेकिन हाल के वर्षों में बदल गया है, सिंगलटन ऑब्जेक्ट पैटर्न का उपयोग है ।
अपने स्वयं के अनुभव और सहकर्मियों के साथ लंबी बहस के माध्यम से, मुझे पता चला है कि सिंगलटन हमेशा वांछनीय नहीं होते हैं - वे परीक्षण को और अधिक कठिन बना सकते हैं (मॉकिंग जैसी तकनीकों को रोककर) और सिस्टम के कुछ हिस्सों के बीच अवांछनीय युग्मन बना सकते हैं। इसके बजाय, मैं अब ऑब्जेक्ट फैक्ट्रियों (आमतौर पर एक IoC कंटेनर के साथ) का उपयोग करता हूं जो सिस्टम के कुछ हिस्सों से सिंगलटन की प्रकृति और अस्तित्व को छिपाते हैं जो परवाह नहीं करते हैं - या जानने की आवश्यकता है। इसके बजाय, वे ऐसी वस्तुओं तक पहुंच प्राप्त करने के लिए एक कारखाने (या सेवा लोकेटर) पर भरोसा करते हैं।
आत्म-सुधार की भावना से समुदाय के लिए मेरे प्रश्न हैं:
- हाल ही में आपने किन प्रोग्रामिंग पैटर्न या प्रथाओं पर पुनर्विचार किया है, और अब बचने की कोशिश करते हैं?
- आपने उन्हें बदलने का फैसला क्या किया?