मैं एक समस्या यह है कि एक अपेक्षाकृत बड़े वस्तु पदानुक्रम शामिल है इस प्रकार है की एक बड़ी पदानुक्रम का निर्माण करने की:पैटर्न वस्तुओं
- खेल एक समुदाय प्रबंधक है
- समुदाय प्रबंधक एक नेटवर्क है
- नेटवर्क में कई खिलाड़ी
- नेटवर्क में कई दोस्त हैं ips
- खिलाड़ी है एक रणनीति प्रबंधक
- खिलाड़ी एक मेमोरी है
- खिलाड़ी एक पड़ोस है
- पड़ोस कई खिलाड़ियों
- रणनीति प्रबंधक कई रणनीतियों है है
जैसा कि आप देख सकते हैं, पदानुक्रम अपेक्षाकृत जटिल है और कम से कम एक स्थान चक्रीय है (नेटवर्क में कई एजेंट हैं जिनमें एक पड़ोस है जिसमें एक नेटवर्क है)। फिलहाल मैं पूरे पदानुक्रम का निर्माण करने के लिए GameFactory
कक्षा पर एक स्थिर निर्माण विधि का उपयोग कर रहा हूं लेकिन मुझे पूरा यकीन है कि यह करने का यह कम से कम लचीला तरीका है!
वस्तुओं के जटिल पदानुक्रम के निर्माण के मामले में उपयोग करने के लिए सबसे अच्छा पैटर्न क्या है? मैंने Factory Method
, Abstract Factory
और Builder
पैटर्न पर पढ़ा है और मुझे लगता है कि कारखाने के पैटर्न में से एक उपयुक्त है लेकिन मुझे वास्तव में यह नहीं पता कि इस तरह के जटिल पदानुक्रम में इसे कैसे लागू किया जाए?
जैसा कि मैंने इसे देखा है, मुझे सिस्टम के प्रत्येक भाग के लिए कई कारखानों की आवश्यकता होगी, लेकिन इसके परिणामस्वरूप मॉडल वर्गों को मिरर करने वाले कारखाने वर्गों का संग्रह होगा।
संपादित करें: यह अब तक कि मैं कारण है कि मैं कारखानों की आवश्यकता होती है बल्कि कंस्ट्रक्टर्स खुद को उनके निर्भरता का निर्माण करने के लिए अनुमति देता है की तुलना में मेरी वस्तु पदानुक्रम का निर्माण करने के बारे में अधिक विस्तार से बताया जाना चाहिए था दिए गए सुझाव में हुई चर्चाओं से स्पष्ट हो गया है।
ऐसा इसलिए है क्योंकि मैं परीक्षण संचालित विकास में सहायता के लिए निर्भरता इंजेक्शन का उपयोग कर रहा हूं। मैं परीक्षण के लिए एक मजाकिया दृष्टिकोण ले रहा हूं जिसके लिए किसी ऑब्जेक्ट की निर्भरताओं का प्रतिनिधित्व करने वाले मैक्स को इंजेक्ट करने की क्षमता की आवश्यकता होती है और इस तरह मुझे किसी भी निर्माता में new
का उपयोग करने से बचना होगा।
दिए गए सुझाव से अब तक ऐसा लगता है ऐसा करने का संभावित तरीकों में से एक संख्या हैं:
- प्रत्येक वर्ग के उस वस्तु के लिए आवश्यक किसी भी निर्भरता बनाता निर्माण किया जा रहा में एक माध्यमिक निर्माता बनाएँ। यह निर्भरता इंजेक्शन और सरल वस्तु पदानुक्रम निर्माण की अनुमति देता है।
- अपने निर्माण से निपटने के लिए प्रत्येक डोमेन वर्ग में मैपिंग करने के लिए कारखाने वर्ग (या तो उनमें से एक या एक पदानुक्रम का उपयोग किया गया कारखाना पैटर्न के प्रकार के आधार पर) है।
- जब वहाँ कुछ है कि निर्माण प्रक्रिया (यानी, विभिन्न उपवर्गों कुछ निश्चित परिस्थितियों में निर्माण किया जा करने की जरूरत है)
मैं लेने के लिए इच्छुक हूँ में बदलता है इन तरीकों जहां कारखाने कक्षाएं केवल बनाई गई हैं का एक संयोजन का उपयोग करें अंतिम मार्ग इस स्थिति में लेने के लिए सबसे अच्छे दृष्टिकोण पर सर्वसम्मति क्या है?
संपादित करें: मैं अब कि इस सवाल का ध्यान स्पष्ट कर दिया गया है के बाद से वर्तमान जवाब (पैट्रिक कार्चर से एक) को निरस्त करने की रही है, सुझाव से कोई भी पूरा जवाब नहीं है।
स्पष्टता के लिए एक नया प्रश्न (इस संदर्भ में) पूछना बेहतर होगा। –