JavaFX - डोमेन ऑब्जेक्ट्स के साथ गुण का उपयोग करने का सही तरीका


10

जावाएफ़एक्स ने नई संपत्ति वस्तुओं का एक गुच्छा प्रदान किया है, जैसे कि javafx.beans.property.DoublePropertyआप उन क्षेत्रों को परिभाषित करने की अनुमति देते हैं जो स्वचालित रूप से देखे और सिंक्रनाइज़ किए जा सकते हैं।

कई जेएफएक्स उदाहरणों में, एमवीसी मॉडल वर्ग में इन संपत्ति क्षेत्रों की एक संख्या है, जो तब दृश्य में स्वचालित रूप से बाँध सकती है।

हालाँकि, यह हमें JFX प्रॉपर्टीज़ को अपने डोमेन ऑब्जेक्ट्स में डालने के लिए प्रोत्साहित करता प्रतीत होता है (यदि आप मानते हैं कि मॉडल क्लास एक डोमेन ऑब्जेक्ट होने जा रहा है), जो मुझे चिंताओं के एक अलग पृथक्करण (यानी डोमेन में GUI कोड डालने) के रूप में प्रभावित करता है )।

क्या किसी ने इस समस्या को 'वास्तविक जीवन' में हल करते देखा है और यदि ऐसा है, तो यह कैसे किया गया?


कृपया मुझे सही करें अगर मैं गलत हूं, लेकिन जावाएफएक्स के बारे में मेरी समझ यह थी कि इसे 2008 में ओरेकल खरीद से पहले सन द्वारा शरण दी गई थी, और इसे केवल सेब उपकरणों पर सिल्वरलाइट और डेक्लाइन ऑफ फ्लैश के अपवर्जन के साथ बाजार में वापस लाया गया है। हो सकता है कि आप सही हैं कि यह देखने के लिए कसकर युग्मित है, और एक मूल कारण इसे सूरज पर रखा गया था। सिर्फ एक विचार।
जैक स्टोन

Sun और अब Oracle कई वर्षों से JavaFX पर लगातार काम कर रहा है। हाल ही में प्रमुख बदलाव "JavaFX स्क्रिप्ट" प्रोग्रामिंग भाषा को बंद करना था जिसे JavaFX का उपयोग करना आवश्यक था, और साधारण जावा का उपयोग करने के लिए स्विच करना था। यह बदलाव पूरी तरह से नई प्रोग्रामिंग भाषा का समर्थन करने के लिए खराब गोद लेने और खर्च से प्रेरित था।
स्टुअर्ट मार्क्स

जवाबों:


4

मैं JavaFX 2.0 के साथ खेल रहा हूं, जो मुझे लगता है कि आपका सवाल है। वास्तविक उत्पादन कोड नहीं, सिर्फ एक व्यक्तिगत परियोजना, लेकिन मैं उसी समस्या में भाग गया जिसका आप ऊपर उल्लेख कर रहे हैं। पूरा मॉडल 2D ढांचे से निर्भर हो जाता है, और मुझे यह पसंद नहीं है।

मैंने क्या किया कि मैंने मॉडल की प्रत्येक कक्षा को दो में विभाजित किया, वास्तविक मॉडल वर्ग, जिसमें डेटाबेस से अपनी सामग्री को लोड करने की क्षमता है, जानता है कि यह अपने राज्य आदि को कैसे बदल देता है ... और उपस्थिति का निर्णय करने वाला प्रतिनिधित्व वर्ग स्क्रीन पर। उत्तरार्द्ध में सभी संपत्ति वर्ग शामिल होंगे।

आपको किसी भी MVC फ्रेमवर्क में समान डिज़ाइन मिलेगा, जैसे स्विंग। यह सिर्फ इतना है कि यहां ऐसा करने से कोई बच नहीं सकता है।


एक ढांचा जो आपको अच्छे डिजाइन सिद्धांतों को लागू करने के लिए मजबूर करता है या यदि आप नहीं करते हैं तो आपके चेहरे पर उड़ने लगते हैं। एक .NET पुरुष के रूप में, यह मेरे लिए बहुत परिचित है।
मट्टदेवी

0

लगभग 7 साल बाद और यह सवाल अब भी पहले जैसा ही है।

मेरी राय में, मॉडल से संबंधित किसी भी वर्ग द्वारा javafx को कभी भी आयात नहीं किया जाना चाहिए। हालाँकि, यदि आप एक MVVM को MVC आर्किटेक्चर के साथ संयुक्त रूप से अपनाते हैं, तो वे बहुत ठीक हो सकते हैं। इस अर्थ में

  • संस्थाएं = (डोमेन) मॉडल ( एम )
  • FXML फ़ाइलें = दृश्य ( V )
  • नियंत्रक अभी भी नियंत्रक ( सी ) है
  • व्यू-मॉडल ( VM ) = डेटा वर्गों का एक नया सेट जिसमें केवल javafx गुण होते हैं और वास्तविक डोमेन ऑब्जेक्ट (M) का एक संदर्भ होता है जो इसका प्रतिनिधित्व करता है। यह व्यवसाय तर्क पद्धति को इस वस्तु पर आगे कॉल कर सकता है, एक समग्र / डेकोरेटर के रूप में कार्य करता है।

MVVM + MVC

चीजों को देखने का एक अन्य तरीका नियंत्रक वर्ग को दृश्य का हिस्सा होने के बारे में सोचना है, क्योंकि यह सब दृश्य-मॉडल (डेटा और कार्यों) के साथ दृश्य-मॉडल को बांधने के लिए है। इसलिए इसे आसानी से एक प्रस्तुतकर्ता या यहां तक ​​कि एक बांधने की मशीन कहा जा सकता है। हालाँकि यह इस बात पर निर्भर करता है कि आप नियंत्रक का उपयोग कैसे करते हैं। यदि आप नियंत्रक वर्ग में दृश्य-मॉडल में हेरफेर करने के लिए तर्क जोड़ते हैं, तो यह इसके नाम का हकदार है और आपके पास ऊपर प्रस्तुत वास्तुकला है। यदि नियंत्रक वर्ग केवल मॉडल विधियों के लिए UI डेटा और ActionEvents मॉडल मॉडल को बांधता है, तो आप नीचे प्रस्तुत MVVM उत्परिवर्ती वास्तुकला है।

MVPVM

मुझे लगता है कि ये आर्किटेक्चर किसी तरह से क्लीन आर्किटेक्चर (प्रेजेंटेशन लेयर) पर अंकल बॉब के विचारों को परिपक्व करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.