मैं जानना चाहता हूं कि ऐसे मामलों का उपयोग किया जा सकता है जहां सार्वजनिक क्षेत्र उचित हैं (परिवर्तनीय मूल्यों के लिए) या इसे हर कीमत से बचा जाना चाहिए और गेटर्स/सेटर्स का हमेशा उपयोग किया जाना चाहिए।क्या परिवर्तनीय सार्वजनिक क्षेत्रों के लिए उपयोग-मामले हैं?
मान लीजिए कि एक डीटीओ (डेटा ट्रांसफर ऑब्जेक्ट)/जावा बीन है जिसमें कोई तर्क नहीं है, केवल डेटा धारण करना (इसे जोड़ने के लिए प्रोटोकॉल का हिस्सा हो सकता है जो बदलता नहीं है, केवल बढ़ता है)। प्रभावी ढंग से कोई कार्यान्वयन विवरण नहीं है जो encapsulated होने के लिए मौजूद है क्योंकि कोई कार्यान्वयन नहीं है, बस डेटा। यह भी मान लें कि बीन वैलिडेशन फ्रेमवर्क का उपयोग एनोटेशन के माध्यम से ऑब्जेक्ट को सत्यापित करने के लिए किया जाता है, इसलिए लॉजिक को सत्यापित करने के लिए सेटर्स रखने का कोई उद्देश्य नहीं है।
सेटर्स और गेटर्स मुझे परेशान क्यों करेंगे?
सेटर्स/गेटर्स के बिना पढ़ना अधिक आसान है; खेतों, विशेष रूप से आंतरिक कक्षाओं के लिए (आपको अन्य क्षेत्रों तक पहुंचने के लिए सेटर्स और गेटर्स तक स्क्रॉल करने की आवश्यकता नहीं है)। ग्रोवी में user.getPassword()
के बजाय user.password
होने के अलावा यह और भी स्पष्ट है।
मुझे परियोजना लंबोक के बारे में पता है; लेकिन मेरे पास बीन सत्यापन से पहले से ही कई टिप्पणियां हैं।
तो सवाल स्पष्ट करने के लिए: क्या उपरोक्त परिदृश्य सार्वजनिक क्षेत्रों के लिए उचित हो सकता है या फिर भी सेटर्स/गेटर्स रखना बेहतर है? और क्यों?
अंगूठे का नियम: हमेशा सबसे अधिक प्रतिबंधक संशोधक के साथ शुरू करें, केवल तभी बदलें जब आप * * *: [* [सबसे प्रतिबंधित पहुंच स्तर का उपयोग करें जो किसी विशेष सदस्य के लिए समझ में आता है। निजी का उपयोग करें जब तक आपके पास कोई अच्छा कारण न हो नहीं। *] (http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) " – Maroun
यह परिदृश्य उचित है और पहले जावा संस्करणों में, मैंने बहुत स्थिर या शुद्ध डेटा ऑब्जेक्ट्स देखा है मैंने काम की परियोजनाओं में इस तरह से परिभाषित किया। मुझे लगता है कि एक मुद्दा सम्मेलन का है। ऐसे डेवलपर्स हैं जो पारंपरिक रूप से गेटर और सेटर का पालन करते हैं और इससे उनके लिए पठनीयता की कुछ हानि हो सकती है। दूसरा मुद्दा भविष्य में बदलाव है। अगर आपको कुछ रूपांतरण तर्क (स्क्ले या अन्य परिचालन) की आवश्यकता है तो यह गेटर ओटी सेटर के नीचे बेहतर हो सकता है। – Yantraguru
@MarounMaroun अंगूठे के इन नियमों के पीछे कारण हैं; और मैं पूरी तरह से आपके साथ सहमत हूं, परिदृश्यों में जहां आपके पास encapsulate करने के लिए तर्क है। – m3th0dman