2008-10-27 13 views
7

मैं वेब सेवा कलाकृतियों को स्वतः उत्पन्न करने के लिए अक्ष का उपयोग करता हूं जिसे मैं अपने आवेदन के भीतर उपयोग की जाने वाली वस्तुओं में परिवर्तित करता हूं। क्या ऐसा करने के लिए कोई समझदार पैटर्न है? हमने धुरी बनाई गई वस्तुओं से हमारी वस्तुओं को आउटपुट करने के लिए ट्रांसफॉर्म विधियों को लिखा है, दूसरी बार हमने ट्रांसफॉर्मर कक्षाओं का एक मध्यवर्ती सेट लिखा है जो धुरी ऑब्जेक्ट्स को हमारे एप्लिकेशन ऑब्जेक्ट्स में बदल देता है? क्या इसका संपर्क करने का एक आम तरीका है?पैटर्न: धुरी ऑब्जेक्ट्स से जावा क्लास रूपांतरण

उत्तर

0

हमने अतीत में इसी तरह के मुद्दों में भाग लिया है। हाल ही में, एक जटिल वेब सेवा के लिए हमने एक्सिस के लिए कलाकृतियों का निर्माण किया था, हम 157 जावा कक्षाओं के साथ घायल हो गए जैसे "MaintainOffersRequestTypeReqReqDataMaintEnhancementCancellationReason"।

हम उन कक्षाओं को लिखते हैं जो इन एक्सिस-जेनरेट की गई वस्तुओं को व्यावसायिक वस्तुओं में बदलते हैं, जो आपके अंतिम विचार के समान हैं। मुझे नहीं पता कि यह सबसे अच्छा तरीका है, लेकिन यह निश्चित रूप से एक व्यावहारिक समाधान है।

3

यदि मैं सही ढंग से समझता हूं, तो आप डब्ल्यूएसडीएल से कोड जेनरेट करने के लिए एक्सिस डब्लूएसडीएल 2 जावा सुविधा का उपयोग करना चाहते हैं और फिर अपने मौजूदा एप्लिकेशन ऑब्जेक्ट मॉडल पर मैप करें। उस स्थिति में, आप JiBX बाइंडिंग के साथ एक्सिस का उपयोग करने पर विचार करना चाहेंगे।

0

यदि आप एक्सिस 1 का उपयोग कर रहे हैं, तो आपके व्यवसाय वर्गों में एक्सिस डेटा क्लास के समान योग्य नाम है, और कुछ अन्य स्थितियां लागू होती हैं, आप केवल एक्सिस के स्थान पर अपने व्यावसायिक वर्गों का उपयोग कर सकते हैं, जिसमें कोई सेटअप आवश्यक नहीं है। हमने कई बार ऐसा किया है।

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

1

यदि लक्ष्य आपके व्यावसायिक ऑब्जेक्ट्स में "अक्ष उत्पन्न" का अनुवाद करना है, तो आप किसी ऑब्जेक्ट कार्यान्वयन से किसी अन्य कार्यान्वयन में प्रतिलिपि बनाने के लिए "मैपर" डोजर (http://dozer.sourceforge.net/) का उपयोग कर सकते हैं। यह नहीं पता कि इसका उपयोग कैसे करें (मुझे लगता है कि आपको एक्सएमएल फाइलों में अनुवाद की व्याख्या करनी है) और फिर इसे काम करना चाहिए (मैंने खुद का उपयोग नहीं किया था, लेकिन कुछ सहयोगियों ने इसे इसी उद्देश्य के लिए इस्तेमाल किया था और यह काम करना प्रतीत होता था)

1

मुझे लगता है कि ऐसा करने के लिए सामान्य ज्ञान तरीका है। अपने दिमाग को थोड़ा सा सार बनाएं और परतों की कल्पना करें।

  1. आपको मूल आईओ और शायद मूल सत्र कार्यक्षमता और/या प्रमाण-पत्रों के साथ एक लाइब्रेरी मिलती है।
  2. एक कन्वर्ट परत बनाएँ। यहां आप अपने आवेदन निर्भर वस्तुओं को बनाने के लिए आवश्यक सभी कोड रखेंगे। अपने आवेदन के लिए एक अच्छा इंटरफेस के साथ इस परत को खत्म करें।

कनवर्शन परत कई तरीकों से किया जा सकता है।

  • रूपांतरण सरल है, तो आप लगभग एक में पहली और दूसरी परत विलय कर सकते हैं। परिवर्तन कार्यक्षमता प्रदान करने के लिए POJOS बढ़ाएं। यह आपको कोड के कम से कम दो टुकड़े, स्वचालित रूप से जेनरेट और एक्सटेंशन + कार्यक्षमता

  • यदि हम विशाल XML के बारे में बात कर रहे हैं जिन्हें कई छोटी एप्लिकेशन ऑब्जेक्ट्स में परिवर्तित करने की आवश्यकता है। ठीक है, पहली परत वैसा ही छोड़ दें और दूसरे प्रयोग में:

    • कमान पैटर्न: परिवर्तनों को संपुटित करने के लिए।
    • यदि रूपांतरण भी गन्दा हो जाता है: जिम्मेदारी की चेन आपको परिवर्तनों का पेड़ उत्पन्न करने में मदद करेगा।

मुझे आशा है कि इस मदद करता है

संबंधित मुद्दे