मेरे प्रोग्रामिंग के वर्षों में मैंने अक्सर कक्षाएं बनाई हैं जो बस अपने सेटर्स और गेटर्स के साथ कुछ चर समूहबद्ध करती हैं। मैंने इन प्रकार की ऑब्जेक्ट्स को संदर्भ ऑब्जेक्ट्स, डोमेन ऑब्जेक्ट्स या मॉडल ऑब्जेक्ट्स के संदर्भ में संदर्भित किया है, जिनके संदर्भ में उनका उपयोग किया जाता है। जेनेरिक उपयोग के लिए सबसे उपयुक्त शब्द डेटा ट्रांसफर ऑब्जेक्ट (डीटीओ) लगता है। यह एक पीओजेओ का वर्णन करता है जिसमें केवल एक्सेसर्स और म्यूटेटर शामिल हैं।डेटा ट्रांसफर ऑब्जेक्ट में सार्वजनिक फ़ील्ड
मैंने अभी एक ऐसा ऑब्जेक्ट लिखा है जिसमें चार्ट पर थीम पैरामीटर सेट करने के लिए उपयोग किए जाने वाले लगभग पचास फ़ील्ड शामिल हैं। अब मैं सोच रहा हूं कि सौ गेटर्स और सेटर्स बनाने के बजाय मुझे इन क्षेत्रों को सार्वजनिक रूप से घोषित करना चाहिए। ऐसा करने से सबकुछ मेरे प्रोग्रामिंग प्रवृत्तियों के बारे में बताता है, फिर भी मैं इनकार नहीं कर सकता कि यह मेरे कोड की योग्यता में काफी वृद्धि करेगा और कक्षा में बॉयलरप्लेट कोड की मात्रा को कम करेगा।
सार्वजनिक क्षेत्रों का उपयोग करने के लिए नहीं देख सकता एकमात्र कारण यह होगा कि मुझे इन क्षेत्रों में किसी भी प्रकार की सत्यापन करने की आवश्यकता होगी। अगर हम मानते हैं कि मेरे उद्देश्यों के लिए टाइप प्रमाणीकरण पर्याप्त है, तो इस परिदृश्य में सार्वजनिक क्षेत्रों का उपयोग ऑब्जेक्ट उन्मुख डिजाइन से स्वीकार्य ब्रेक है? बड़े बैच ऑपरेशंस में एक सार्वजनिक डीटीओ बेहतर प्रदर्शन करेगा?
संभावित डुप्लिकेट की ज्यादा उम्मीद न करें - http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – sanbhat
getters और setters यदि आवश्यक हैं आप 'डीआई' ढांचे जैसे 'स्प्रिंग' या 'jsp: useBean' आदि जैसे कुछ का उपयोग करने का प्रयास करते हैं !!! – NINCOMPOOP
@ सनबहाट: उस प्रश्न के स्वीकृत उत्तर में दिए गए कुछ कारण यहां लागू होते हैं लेकिन सभी नहीं। एक डीटीओ की गुंजाइश और व्यवहार एक सामान्य वर्ग से अलग तो मैं सोच रहा था कि अलग-अलग "नियम" यहाँ लागू होता है। – Lilienthal