ऐसा लगता है कि यदि मैं कड़ाई से एकल उत्तरदायित्व सिद्धांत का पालन करता हूं, तो मुझे बदलने वाली कार्यक्षमताओं को विभाजित करने के लिए सार्वजनिक गेटर्स जोड़ना पड़ सकता है। मेरे लिए, यह आंतरिक संरचना वस्तुओं को उजागर करके encapsulation का उल्लंघन करता प्रतीत होता है।क्या अकेले उत्तरदायित्व सिद्धांत का पालन करना encapsulation का उल्लंघन करता है?
उदाहरण के लिए, मान लें कि मेरे पास एक कक्षा है जो अपलोड की गई फ़ाइल का प्रतिनिधित्व करती है। अतीत में मैं क्रम में toHtml() की तरह के तरीकों का इस्तेमाल किया है टिककर खेल से बचने और कैप्सूलीकरण बनाए रखने के लिए:
public class UploadedFile() {
private String filename;
private String uri;
public String toHtml() {
return <html string>;
}
लेकिन मैं देख सकता था, जहां एक बहस कर सकते हैं कि, SRP के आधार पर, आप फ़ाइल नाम के लिए ही टिककर खेल में शामिल करना चाहिए और यूरी और कहीं और एचटीएमएल उत्पन्न करें।