2008-10-30 21 views
203

क्या कोई परिभाषित कर सकता है कि वास्तव में 'पोको' का क्या अर्थ है? मैं इस शब्द को अधिक से अधिक बार सामना कर रहा हूं, और मैं सोच रहा हूं कि यह केवल सादे वर्गों के बारे में है या इसका मतलब कुछ और है?'पीओसीओ' परिभाषा

+18

यह भी मजाकिया है कि "पोको" एक स्पेनिश शब्द है जिसका अर्थ है "थोड़ा, ज्यादा नहीं"। तो, यह अच्छी तरह से इस संदर्भ फिट बैठता है! http://en.wiktionary.org/wiki/poco –

+3

इसका मतलब इतालवी में भी वही बात है :) – BlackBear

+2

और पुर्तगाली में एक त्रुटि है क्योंकि यह वर्तनी है: "पॉको"। – Ismael

उत्तर

172

"सादा पुराना सी # ऑब्जेक्ट"

बस एक सामान्य वर्ग, कोई गुण बुनियादी ढांचे चिंताओं या अन्य जिम्मेदारियों है कि आपके डोमेन वस्तुओं नहीं करना चाहिए था का वर्णन।

संपादित करें - जैसा कि अन्य उत्तरों ने कहा है, यह तकनीकी रूप से "सादा पुराना सीएलआर ऑब्जेक्ट" है, लेकिन डेविड अरनो टिप्पणियों की तरह, मैं विशिष्ट भाषाओं या प्रौद्योगिकियों से संबंधों से बचने के लिए "सादा पुरानी कक्षा वस्तु" पसंद करता हूं।

स्पष्ट करने के लिए: दूसरे शब्दों में, वे से कुछ विशेष आधार वर्ग से प्राप्त नहीं होते हैं, न ही वे अपनी संपत्तियों के लिए किसी विशेष प्रकार को वापस करते हैं।

+14

मैं एक पीओसीओ को एक सादे पुराने वर्ग के रूप में देखता हूं जो ट्रेंडी पैटर्न सेट का हिस्सा बनने की कोशिश नहीं करता है। हालांकि मुझे आपका जवाब भी पसंद है। –

+0

सहमत - सी # नाम का प्रशंसक नहीं, लेकिन जब मैंने प्रश्न के बारे में सोच रहा था तो मैंने पहली बार सुना था :) कक्षा तो POJO, POVBO POC# O, POC++ O, PORO, आदि 0 फिट बैठती है –

+12

यह ' वास्तव में मेरी व्यक्तिगत राय में कोई अच्छा जवाब नहीं देता क्योंकि कोई भी उत्सुक होता है। ठीक है, इसलिए बुनियादी सुविधाओं का वर्णन करने वाले कोई भी विशेषता नहीं है (विशेषताएँ और बुनियादी ढांचे के आधार पर आपका क्या मतलब है ... उदाहरण के लिए एक डीबी कनेक्शन? क्या? उदाहरण कृपया)। आपके डोमेन ऑब्जेक्ट्स की क्या ज़िम्मेदारियां नहीं होनी चाहिए? तो पीओसीओ मूल रूप से एक डोमेन ऑब्जेक्ट (बीएल ऑब्जेक्ट) है? तो वास्तव में पीओसीओ बिजनेस लेयर ऑब्जेक्ट/डोमेन ऑब्जेक्ट के लिए एक और संक्षिप्त शब्द है जिसका मतलब है कि सभी एक ही डरावनी चीज हैं। पीओसीओ/बिजनेस लेयर ऑब्जेक्ट/डोमेन ऑब्जेक्ट == एक ही डरावनी चीज, एक ही अवधारणा के लिए सिर्फ 3 अलग-अलग शब्दकोष सही है? – PositiveGuy

5

जावा भूमि में आम तौर पर "पीओ" का अर्थ है "सादा पुराना"। बाकी मुश्किल हो सकते हैं, इसलिए मुझे लगता है कि आपका उदाहरण (जावा के संदर्भ में) "सादा पुराना वर्ग वस्तु" है।

कुछ अन्य उदाहरण

  • POJO (सादे पुराने जावा ऑब्जेक्ट)
  • POJI (सादे पुराने जावा इंटरफेस)
12

POCO "सादा पुराना CLR ऑब्जेक्ट" के लिए खड़ा है।

+20

ooooook? तो संदर्भ या वास्तविक दुनिया में इसका क्या अर्थ है? – PositiveGuy

+20

और जैसा कि मेरा हाईस्कूल बिजली शिक्षक कहता है, "... और संतरे स्वाद ऑरेंज" –

+5

सही है, लेकिन यह पोस्ट उत्तर के बजाए अधिक टिप्पणी की तरह दिखती है क्योंकि यह पूरी तरह से प्रश्न का उत्तर नहीं देती है। –

6

अन्य उत्तरों को जोड़ने के लिए, POxx शब्द सभी POTS (Plain old telephone services) से बने होते हैं।

आरईएसटी, एसओएपी आदि से जुड़े जटिल बहु-स्तरित सामानों की बजाय सरल (सादा पुराना) एक्सएमएल परिभाषित करने के लिए उपयोग किया जाने वाला POX एक उपयोगी और अस्पष्ट रूप से मनोरंजक, शब्द था। पीओ (पसंद की भाषा डालें) ओ शब्द ने मजाक पतला पहना है।

42

अधिकांश लोगों को यह कहा है -

POJO एक EJB से बाहर आया है, जिसके लिए एक विशिष्ट माता पिता वर्ग से विरासत को आप की आवश्यकता - सादा पुराना CLR ऑब्जेक्ट (प्लेन ओल्ड जावा वस्तु के रूप में पहले POJO के खिलाफ) मूल्य वस्तुओं जैसे चीजें (जो आप किसी ओआरएम या इसी तरह की क्वेरी से वापस आती हैं), इसलिए यदि आप कभी भी ईजेबी (जैसे वसंत में) से स्थानांतरित करना चाहते हैं, तो आप भरे हुए थे।

पीओजेओ केवल वे वर्ग हैं जो आप जो भी ढांचा उपयोग कर रहे हैं, उन्हें "काम" करने के लिए विरासत या किसी भी विशेषता मार्कअप को मजबूर नहीं करते हैं।

पीओसीओ समान हैं, .NET को छोड़कर।

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

+1

सिर्फ पूर्णता के लिए, सीएलआर सामान्य भाषा रनटाइम - .NET वर्चुअल मशीन के लिए stabds। – philant

+0

+1 ओआरएम – Lucas

+3

के साथ अपने (सामान्य) संबंध का उल्लेख करने के लिए +1। नेट 3.5 एसपी 1 ओआरएम उदाहरण: इकाई ढांचे के लिए आवश्यक है कि कक्षाएं एक निश्चित ढांचे वर्ग से प्राप्त हों। LINQ से SQL में यह आवश्यकता नहीं है। इसलिए LINQ से SQL पीओसीओ और इकाई ढांचे के साथ काम करता है। – Lucas

3

दिलचस्प। केवल एक चीज जिसे मुझे पता था कि प्रोग्रामिंग के साथ करना था और इसमें पीओसीओ था POCO C++ framework

4

WPF MVVM शब्दों में, एक POCO वर्ग एक है कि PropertyChanged घटनाओं

6

नेट में एक POCO एक 'सादा वर्ष CLR वस्तु' है फायर नहीं करता है। यह 'सादा पुराना सी # ऑब्जेक्ट' नहीं है ...

7

मैं इसके बारे में गलत हो सकता हूं .. लेकिन वैसे भी, मुझे लगता है कि पीओसीओ सादा पुराना कक्षा सीएलआर ऑब्जेक्ट है और यह पीओजेओ सादे पुराने जावा ऑब्जेक्ट से आता है। एक पीओसीओ एक वर्ग है जिसमें डेटा होता है और इसका कोई व्यवहार नहीं होता है।

यहाँ एक उदाहरण सी # में लिखा है:

class Fruit { 
    public Fruit() { 
    } 
    public Fruit(string name, double weight, int quantity) { 
     Name = name; 
     Weight = weight; 
     Quantity = quantity; 
    } 
    public string Name { get; set; } 
    public double Weight { get; set; } 
    public int Quantity { get; set; } 
    public override string ToString() { 
     return Name.ToUpper() + " (" + Weight + "oz): " + Quantity; 
    } 

} 
0

जबकि मुझे यकीन है कि POCO यहां लोगों की 99.9% का मतलब सादा पुराना कक्षा वस्तु या सादा पुराना सी वस्तु हूँ, POCO भी एनिमेटर प्रो की (Autodesk) है स्क्रिप्टिंग भाषा में बनाया गया।

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