सादा पुराना जावा ऑब्जेक्ट नाम का उपयोग इस बात पर जोर देने के लिए किया जाता है कि किसी दिए गए ऑब्जेक्ट एक सामान्य जावा ऑब्जेक्ट है, विशेष वस्तु नहीं, जैसे कि ईजेबी 2 फ्रेमवर्क द्वारा परिभाषित किया गया है।
वर्ग एक {}
वर्ग बी फैली/लागू करता है सी {}
नोट: बी गैर POJO जब सी तरह के ढांचे के वर्ग या आईएफसी वितरित किया जाता है है। उदा। javax.servlet.http.HttpServlet, javax.ejb.EntityBean या J2EE extn और serializable/तुलनीय नहीं है। चूंकि serializable/तुलनीय POJO के लिए मान्य हैं।
यहां ए एक साधारण वस्तु है जो स्वतंत्र है। बी एक विशेष ओबीजे है क्योंकि बी सी विस्तार/कार्यान्वित कर रहा है। इसलिए बी ऑब्जेक्ट सी और बी से कुछ और अर्थ प्राप्त करता है सी और बी के नियमों का पालन करने के लिए प्रतिबंधित है वितरित ढांचे के साथ कसकर युग्मित है। इसलिए बी ऑब्जेक्ट अपनी परिभाषा से पीओजेओ नहीं है।
कक्षा ए ऑब्जेक्ट संदर्भ का उपयोग करने वाले कोड को इसके प्रकार के बारे में कुछ भी नहीं पता है, और इसका उपयोग कई ढांचे के साथ किया जा सकता है।
तो पीओजेओ को 1 नहीं होना चाहिए) पूर्व निर्धारित वर्गों का विस्तार करना और 2) पूर्वनिर्धारित इंटरफेस लागू करना।
जावाबीन पीओजेओ का एक उदाहरण है जो धारावाहिक है, इसमें कोई तर्क नहीं है, और सरल नामकरण सम्मेलन का पालन करने वाले गेटर और सेटर विधियों का उपयोग करके गुणों तक पहुंच की अनुमति देता है।
POJO पूरी तरह से व्यावसायिक तर्क पर केंद्रित है और इसकी (एंटरप्राइज़) ढांचे पर कोई निर्भरता नहीं है। इसका मतलब है कि इसमें व्यावसायिक तर्क के लिए कोड है लेकिन यह उदाहरण कैसे बनाया गया है, कौन सी सेवा (ईजेबी ..) इस ऑब्जेक्ट से संबंधित है और इसकी विशेष विशेषताएं (स्टेटफुल/स्टेटलेस) क्या हैं, इसका उपयोग करके बाहरी रूप से फ्रेमवर्क द्वारा तय किया जाएगा एक्सएमएल फ़ाइल।
उदाहरण 1: जेएक्सबी जावा ऑब्जेक्ट को एक्सएमएल के रूप में प्रस्तुत करने की सेवा है; ये जावा वस्तुएं सरल हैं और डिफ़ॉल्ट कन्स्ट्रक्टर गेटर्स और सेटर्स के साथ आती हैं।
उदाहरण 2: हाइबरनेट जहां टेबल का प्रतिनिधित्व करने के लिए सरल जावा क्लास का उपयोग किया जाएगा। कॉलम इसके उदाहरण होंगे।
उदाहरण 3: आरईएसटी सेवाएं। आरईएसटी सेवाओं में डीबी पर कुछ संचालन करने के लिए हमारे पास सर्विस लेयर और दाओ लेयर होगा। तो दाओ के पास विक्रेता विशिष्ट प्रश्न और संचालन होंगे। डीबी ऑपरेशन करने के लिए कौन सी डीएओ परत को कॉल करने के लिए सेवा परत जिम्मेदार होगी। डीएओ के एपीआई (विधियों) को बनाएं या अपडेट करें, पीओजेओ को तर्क के रूप में लेंगे, और पीओजेओ अपडेट करें और डीबी में डालें/अपडेट करें। इन पीओजेओ (जावा क्लास) में प्रत्येक कॉलम और इसके गेटर्स और सेटर्स के केवल राज्य (इंस्टेंस चर) होंगे।
प्रैक्टिस में, कुछ लोगों को टिप्पणियां सुरुचिपूर्ण लगती हैं, जबकि वे एक्सएमएल को वर्बोज़, बदसूरत और बनाए रखने के लिए कड़ी मेहनत करते हैं, फिर भी दूसरों को एनओटीशन पीओजेओ मॉडल को प्रदूषित करते हैं।
लाभ:: इस प्रकार, एक्सएमएल के लिए एक विकल्प के रूप में, कई व्यवस्थाएं (जैसे वसंत, EJB और जेपीए) की अनुमति देने के एनोटेशन बजाय या एक्सएमएल के अलावा प्रयोग की जाने वाली
बुनियादी ढांचे चौखटे से आवेदन कोड Decoupling है POJO का उपयोग करने के कई लाभों में से एक। POJO भविष्य का उपयोग करके आपके एप्लिकेशन के व्यावसायिक तर्क को अस्थिर, लगातार विकसित बुनियादी ढांचे ढांचे से डीकॉप्लिंग करके प्रमाणित किया जाता है। किसी नए संस्करण में अपग्रेड करना या एक अलग ढांचे में स्विच करना आसान और कम जोखिम भरा हो जाता है। पीओजेओ भी परीक्षण को आसान बनाता है, जो विकास को सरल बनाता है और तेज़ करता है। आपका व्यापार तर्क स्पष्ट और सरल हो जाएगा, क्योंकि यह बुनियादी सुविधाओं कोड के साथ उलझ नहीं की जाएगी
संदर्भ: wikisource2
अच्छा सवाल, ऐसा लगता है कि POJO वास्तव में क्या है पर कई भिन्नताएं हैं। मैं लगभग दैनिक शब्द का उपयोग करता हूं और मुझे यकीन नहीं है कि इसका क्या मतलब है कि मैं इसके बारे में सोचता हूं। +1 –
बस इसे सी ++ पीओडी से भ्रमित न करें। –