क्या गोलाकार वर्ग निर्भरता कोडिंग शैली बिंदु से खराब हैं?क्या गोलाकार वर्ग निर्भरता कोडिंग शैली बिंदु से खराब हैं?
उदाहरण:
एक डेटाबेस आवेदन हम दो वर्गों, एक एकल डाटाबेस (DBInfo
) और एक वर्ग है जो एक डेटाबेस कनेक्शन बना सकते हैं के बारे में एक encapsulating जानकारी में। (ConnFactory
)
DBInfo
में getConnection
विधि है जो कनेक्शन बनाने के लिए ConnFactory
का उपयोग करती है। लेकिन ConnFactory
को ऐसा करने के लिए DBInfo
ऑब्जेक्ट की आवश्यकता है।
इस तरह:
class DBInfo {
String name;
String connectionUrl;
Connection getConnection() {
return ConnFactory.getConnection(this);
}
}
class ConnFactory {
Connection getConnection(DBInfo toWhat) {
return new Connection(toWhat.connectionUrl);
}
}
मेरे सह कार्यकर्ता का कहना है कि यह बुरा व्यवहार है और कोई यह बेहतर होगा अगर वहाँ निर्भरता और का केवल एक ही दिशा थे (कोई भी कोडिंग शैलियों पठनीयता के कारण अवहेलना) यहाँ जैसे परिपत्र।
क्या यह बुरा अभ्यास है, विरोधी पैटर्न या कोड गंध है? क्या कोई कमी है?
मैं मानता हूं, हालांकि यह किसी प्रकार का माता-पिता, बाल संबंध रखने के लिए अप्राकृतिक नहीं है, जहां कनेक्शन में डीबीआईएनएफओ का संदर्भ है जो इसे बनाया गया है और डीबीआईएनएफओ कैश/कनेक्शन की सूची प्रबंधित करता है बनाया था। कहा जा रहा है कि, इस उदाहरण में यदि यह केवल स्ट्रिंग है जिसे हमें डीबीआईएनएफओ से चाहिए तो मैं केवल पैरामीटर के रूप में इसे पास कर दूंगा। जैसा कि आपने पहले ही नमूना कोड से कहा है, यह वास्तव में स्पष्ट नहीं है कि उन्हें एक-दूसरे के संदर्भों की आवश्यकता क्यों है, जिससे सही रिफैक्टरिंग का प्रस्ताव देना मुश्किल हो जाता है। – Cohen