यदि एक ही व्यवहार को प्राप्त करने के लिए कम जटिल विकल्प हैं, तो एक मौजूदा कॉल में वर्तमान ऑब्जेक्ट को पास करना बुरा अभ्यास है।
परिभाषा के अनुसार, thisएक वस्तु से दूसरी वस्तु के पास जाते ही एक द्विदिश संघ बनता है ।
मार्टिन फॉवलर द्वारा रिफैक्टरिंग को उद्धृत करने के लिए:
द्विदिश एसोसिएशन को यूनिडायरेक्शनल (200) में बदलें
द्विदिश संघ उपयोगी होते हैं, लेकिन वे एक मूल्य रखते हैं। मूल्य दो-तरफ़ा लिंक को बनाए रखने और यह सुनिश्चित करने की अतिरिक्त जटिलता है कि ऑब्जेक्ट ठीक से बनाए और निकाले गए हैं। कई प्रोग्रामर के लिए द्विदिश संघ स्वाभाविक नहीं हैं, इसलिए वे अक्सर त्रुटियों का स्रोत होते हैं
...
जब आप की जरूरत नहीं है, लेकिन जब आप की जरूरत है, तो आप द्विदिश संघों का उपयोग करना चाहिए। जैसे ही आप देखते हैं कि एक द्विदिश एसोसिएशन अब अपना वजन नहीं बढ़ा रहा है, अनावश्यक अंत छोड़ दें।
इसलिए, सैद्धांतिक रूप से, हमें अलार्म घंटियाँ सुननी चाहिए जब हम पाते हैं कि हमें पास करने की ज़रूरत है thisऔर हाथ में समस्या को हल करने के अन्य तरीकों के बारे में सोचने के लिए वास्तव में कठिन प्रयास करना चाहिए । बेशक, ऐसे समय, जब अंतिम उपाय पर, यह करने के लिए समझ में आता है।
समग्र सुधार के लिए अपने कोड की लंबी अवधि के रीफैक्टरिंग के दौरान, 'खराब अभ्यास की बातें' करते हुए, अस्थायी रूप से अपने डिज़ाइन को भ्रष्ट करना भी अक्सर आवश्यक होता है। (एक कदम पीछे, दो कदम आगे)।
व्यवहार में मैंने पाया है कि प्लेग जैसे द्विदिश लिंक से बचकर मेरे कोड में व्यापक सुधार हुआ है ।