बंद प्रत्येक खेल बारी निष्पादित करने के लिए की एक सूची के बाद वास्तव में एक अच्छा विचार की तरह लगता है :-)
serialising क्लोजर पूरी तरह से संभव है। ग्रूवी 1.8.5 के बाद से, यह आसान बना दिया गया है के रूप में दो तरीकों dehydrate
और rehydrate
क्लोजर में जोड़ा गया था (ताकि owner
, thisObject
और delegate
क्रमबद्धता से पहले हटाया जा सकता है)
लेकिन मैं के लिए देशी जावा क्रमबद्धता के साथ समस्या है डेटा की बचत सिस्टम के बीच अल्पकालिक डेटा भेजने के लिए, यह बहुत अच्छा हो सकता है (लेकिन फिर भी मैं protocol buffers या thrift)
पर विचार करें यदि आपको अपना गेम अपडेट करने की आवश्यकता है तो क्या होगा? यदि poisoned
में कोई बग प्रभावित होता है, तो प्रत्येक उपयोगकर्ता जो अपनी सहेजी गई फ़ाइल में बग्गी जहरीले बंद होने से बचा है, वह उस बग को तब तक रखेगा जब तक वह पहनता नहीं है। एक मल्टीप्लेयर गेम में, लोगों के लिए अप्रत्याशित या अवांछित शक्तियां देने के लिए लोगों को उनकी सहेजने वाली गेम फ़ाइलों में हेरफेर करना भी संभव होगा (क्योंकि शक्तियों के लिए कार्यक्षमता स्वयं फ़ाइल में संग्रहीत की जाएगी)। मैं एक जहर को प्रभावित करने में मदद कर सकता था, इसलिए यह उन्हें हटाने के बजाय एचपी जोड़ता है फायदेमंद हो सकता है ;-)
संक्षेप में, मुझे लगता है कि मैं क्या कह रहा हूं कि मैं चीजों के लिए आईडी के साथ एक चरित्र पत्र लिखूंगा, उपयोगकर्ता, इन्वेंट्री, स्कोर इत्यादि को प्रभावित कर रहे हैं, और फिर फ़ाइल को पढ़ने के रूप में बंद होने की जांच करें और लागू करें।
स्रोत
2012-03-11 09:32:39
धन्यवाद। मैं जावा डिकंपेलर के साथ झुका हुआ यह देखने के लिए कि कैसे ग्रोवी आंतरिक रूप से बंद हो जाता है और अब देखते हैं कि उन्हें क्रमबद्ध करने में कुछ भी गलत नहीं है। वे स्वचालित रूप से स्वचालित रूप से जेनरेट किए गए वर्ग होते हैं जो डॉक विधि के साथ होते हैं और बंद होने में उपयोग किए गए सभी बाहरी चरों के संग्रहीत संदर्भ होते हैं। एकमात्र समस्या यह है कि वे हमेशा 'इस' का संदर्भ लेते हैं, भले ही इसका उपयोग न किया जाए, लेकिन जैसा कि आपने कहा था कि 1.8.5 के बाद से एक काम उपलब्ध है – ramirami