समस्या
मैंने हाल ही में सिंगलेट्स के खराब होने के बारे में बहुत कुछ पढ़ा और निर्भरता इंजेक्शन (जिसे मैं "इंटरफेस का उपयोग करना" समझता हूं) बेहतर है। जब मैंने कॉलबैक / इंटरफेस / डीआई के साथ इसे लागू किया और इंटरफ़ेस अलगाव के सिद्धांत का पालन किया, तो मैं काफी गड़बड़ हो गया।
एक यूआई माता-पिता की निर्भरता जहां मूल रूप से उसके सभी बच्चों को मिलाया जाता है, इसलिए आगे पदानुक्रम एक यूआई तत्व था, और अधिक फूला हुआ इसका निर्माता था।
यूआई पदानुक्रम के शीर्ष पर सभी तरह एक आवेदन वर्ग था, जिसमें वर्तमान चयन के बारे में जानकारी और एक 3 डी मॉडल का संदर्भ था जो परिवर्तनों को प्रतिबिंबित करने की आवश्यकता है। अनुप्रयोग वर्ग 8 इंटरफेस लागू कर रहा था, और यह केवल आने वाले उत्पादों (/ इंटरफेस) का पांचवा हिस्सा था!
मैं वर्तमान में एक सिंगलटन के साथ वर्तमान चयन और यूआई तत्वों को स्वयं को अपडेट करने के लिए एक फ़ंक्शन रखने के साथ काम करता हूं। यह फ़ंक्शन UI पेड़ और UI तत्वों को नीचे गिरा देता है, फिर आवश्यकतानुसार वर्तमान चयन सिंगलटन का उपयोग करता है। कोड मुझे इस तरह से साफ लगता है।
प्रश्न
क्या इस परियोजना के लिए एक सिंगलटन शायद उपयुक्त है?
यदि नहीं, तो क्या मेरी सोच और / या DI के कार्यान्वयन में कोई मूलभूत दोष है जो इसे इतना बोझिल बनाता है?
के बारे में परियोजना अतिरिक्त जानकारी
अपार्टमेंट के लिए खरीदारी की टोकरी, साथ घंटियाँ और सीटी: प्रकार
आकार: कोड और यूआई के लिए 2 मानव महीने
रखरखाव: कोई अद्यतन चल रहा है, लेकिन शायद "संस्करण 2.0" बाद में
पर्यावरण: सी एकता में # का उपयोग करना है, जो एक इकाई का उपयोग करता है घटक प्रणाली
लगभग सभी मामलों में, उपयोगकर्ता इंटरैक्शन कई क्रियाओं को ट्रिगर करता है। उदाहरण के लिए, जब उपयोगकर्ता किसी आइटम का चयन करता है
- उस आइटम को दिखाने वाला UI भाग और उसके विवरण को अद्यतन करने की आवश्यकता है। इसके लिए, कीमत की गणना करने के लिए इसे 3 डी मॉडल से कुछ जानकारी प्राप्त करने की आवश्यकता है।
- UI के आगे, कुल मूल्य को अद्यतन करने की आवश्यकता है
- एक 3 डी मॉडल पर एक वर्ग में इसी फ़ंक्शन को वहां परिवर्तनों को प्रदर्शित करने के लिए बुलाया जाना चाहिए