मॉडल कक्षाओं में javafx.beans गुणों का उपयोग करना


Answers

जावा एफएक्स प्रॉपर्टी डिज़ाइन

जावा एफएक्स गुण ऐसे डिजाइन किए गए हैं जिनसे आपको जावाएफ़एक्स प्रोग्राम चलाने के लिए उन्हें चलाने की जरूरत नहीं है। जावा एफएक्स गुण और बाइंडिंग ट्यूटोरियल का उपयोग करने वाले ओरेकल के वर्ग, इस तरह के प्रयोग को दर्शाते हैं (जैसे बिल के गुणों को मॉडल करने के लिए एक बिल वर्ग)। ट्यूटोरियल से नमूना सिर्फ एक जावा और जावाएक्सएक्स अनुप्रयोग के साथ एक मानक जावा प्रोग्राम चलाता है। तो आप सामान्य रूप से JavaFX रनटाइम पर एक अतिरिक्त आवश्यकता के बिना गुणों और बाइंडिंग का उपयोग कर सकते हैं इसका मतलब यह है कि आप उदाहरण के लिए जावाएफ़एक्स गुणों का इस्तेमाल कर सकते हैं और सर्वर साइड एप्लीकेशन में बाइंडिंग कर सकते हैं।

"सही" व्यवहार

ठीक है, तो आप ऐसा कर सकते हैं, लेकिन क्या यह "सही" अभ्यास है?

मुझे नहीं लगता कि बहुत से लोग इस तरह से जावा एफएक्स गुणों का उपयोग करते हैं। इसके लिए एक कारण है क्योंकि जावाएफएक्स गुण काफी नए हैं मुझे नहीं लगता कि मॉडल ऑब्जेक्ट में जावाएफएक्स गुणों का उपयोग करने के लिए यह "गलत" है

चेतावनियां

जावाएफ़एक्स गुण जावा सीरियलाइजेशन का समर्थन नहीं करते हैं (इसका मतलब है कि सीरियलजएबल इंटरफ़ेस के लिए सीधा समर्थन) कई सर्वर साइड जावा प्रौद्योगिकियों को मॉडल क्रमिकरण की आवश्यकता हो सकती है और वे किसी भी ऑब्जेक्ट को serialize करने में असमर्थ होंगे जो जावाएफएक्स गुणों का उपयोग करता था।

जावाएफएक्स गुण खुद को कंटेनर से परिचित नहीं हैं और दुष्प्रभावों के माध्यम से काम करते हैं (जैसे किसी संपत्ति को बदलना एक अन्य बाउंड वैल्यू के लिए अपडेट ट्रिगर कर सकता है), इसलिए इस बारे में अवगत रहें और सुनिश्चित करें कि इस प्रकार की प्रोसेसिंग आपके पर्यावरण में एक स्वीकार्य दृष्टिकोण है। विशेष रूप से, सावधान रहें कि आप बहु-थ्रेडेड सर्वर परिवेश में अवांछित दौड़ की स्थिति उत्पन्न नहीं करते हैं (जावाएफ़एक्स क्लाइंट अनुप्रयोगों को आम तौर पर इसके संबंध में कम देखभाल की आवश्यकता होती है क्योंकि सामान्यतः एक थ्रेडेड वातावरण के रूप में सामान्य रूप से जावाएक्सएक्स चलाता है)।

जावा एफएक्स गुण और हाइबरनेट / जेपीए

मुझे नहीं लगता कि JavaFX प्रॉपर्टी को हाइबरनेट (या जेपीए) इकाई वर्गों में मिश्रण करना एक अच्छा विचार है मैंने किसी को ऐसा नहीं देखा है। अपने आप को हाइबरनेट जावाएफ़एक्स गुणों से अवगत नहीं है और सामान्य रूप से स्ट्रिंग्स और इनट जैसे जावा प्राइमिटिव्स के खिलाफ काम करने के लिए डिज़ाइन किया गया है, इसलिए मुझे नहीं पता कि यह एक स्वचालित रूप से एक डेटाबेस फ़ील्ड में JavaFX प्रॉपर्टी कैसे मैप कर सकता है।

आपको संभवतः एक सेटअप की आवश्यकता होगी जो कि आपके इकाई श्रेणी के पदानुक्रम को परिभाषित करता है और आपके जावाएफएक्स संपत्ति आधारित मॉडल वर्गों के लिए एक समानांतर पदानुक्रम और आखिरकार एक मैपर परत जो दो के बीच मैप की गई है। इस तरह की स्थापत्य स्थापना अनिवार्य रूप से एक एमवीवीएम मॉडल है । मॉडल (एम) आपकी सीतनिद्रा में होना इकाई वर्ग है, और दृश्य मॉडल (वीएम) आपके JavaFX गुण आधारित मॉडल है।

Question

क्या मॉडल वर्गों में JavaFX बीन्स गुणों का उपयोग करने के लिए एक सही अभ्यास है?

मुझे आश्चर्य है कि क्या मॉडेल कक्षाओं में गुणों का उपयोग करने के लिए यह अच्छा अभ्यास है कि वे देखने के घटकों के साथ उन्हें आसानी से बाँध सकें। मैं भविष्य में उन पुस्तकालयों की उपलब्धता के बारे में चिंतित नहीं हूं क्योंकि मेरा प्रोग्राम JRE8 या उसके बाद पर चलाया जाएगा लेकिन मॉडल कक्षाओं में जावाएफएक्स पुस्तकालयों का उपयोग करने की प्रकृति मुझे संदेहजनक बना देती है और मैं वर्तमान और भविष्य में असंगतियों के बारे में चिंतित हूं क्योंकि विशेष रूप से मैं उन विशेषताओं को जारी रखने के लिए सीतनिद्रा में होना का उपयोग करना चाहता हूं

नोट: मैं एक शुद्ध जावाएफएक्स पर्यावरण का उपयोग करता हूं और मुझे कभी भी स्विंग कंपैबिलिटी की आवश्यकता नहीं होगी।