क्या 2 वर्गों के लिए बुरा डिज़ाइन है, जिन्हें एक दूसरे की ज़रूरत है?
यह एक कोड गंध का एक सा है , लेकिन एक इसके साथ छोड़ सकता है। यदि आपके गेम को चलाने और चलाने का सबसे आसान और तेज़ तरीका है, तो इसके लिए जाएं। लेकिन इसे ध्यान में रखें क्योंकि एक अच्छा मौका है कि आपको किसी बिंदु पर इसे फिर से भरना होगा।
C ++ के साथ बात यह है कि परिपत्र निर्भरता इतनी आसानी से संकलित नहीं होगी , इसलिए आपके संकलन को ठीक करने में समय बिताने के बजाय उनसे छुटकारा पाने के लिए एक बेहतर विचार हो सकता है।
कुछ और राय के लिए SO पर यह प्रश्न देखें ।
क्या आप [मेरे डिज़ाइन] को ख़राब डिज़ाइन कहेंगे?
नहीं, यह अभी भी एक कक्षा में सब कुछ डालने से बेहतर है।
यह बहुत अच्छा नहीं है, लेकिन यह वास्तव में मैंने देखा है सबसे कार्यान्वयन के लिए काफी करीब है। आमतौर पर, आपके पास गेम स्टेट्स के लिए एक प्रबंधक वर्ग होगा ( सावधान! ), और एक रेंडरर वर्ग, और यह काफी सामान्य है कि वे एकल हैं। तो परिपत्र निर्भरता "छिपी" है, लेकिन यह संभवतः वहां है।
साथ ही, जैसा कि आपको टिप्पणियों में बताया गया था, यह थोड़ा अजीब है कि खेल राज्य कक्षाएं किसी प्रकार का प्रतिपादन करती हैं। उन्हें बस राज्य की जानकारी रखनी चाहिए, और रेंडरिंग को एक रेंडरर या गेम ऑब्जेक्ट्स के कुछ ग्राफिक कंपोनेंट को खुद हैंडल करना चाहिए।
अब अंतिम डिजाइन हो सकता है । मैं यह देखने के लिए उत्सुक हूं कि क्या अन्य उत्तर एक अच्छा विचार लाते हैं। फिर भी, आप शायद एक हैं जो आपके खेल के लिए सबसे अच्छा डिज़ाइन पा सकते हैं।