encapsulation पर टैग किए गए जवाब

6
विधि बनाम अतिक्रमण
"सिंगल-एक्सेस-पॉइंट" विधियों के आधार पर विधि की क्लासिक OOP समस्या है: main.getA().getB().getC().transmogrify(x, y) बनाम main.getA().transmogrifyMyC(x, y) पहला फायदा यह लगता है कि प्रत्येक वर्ग केवल संचालन के एक छोटे से सेट के लिए जिम्मेदार है, और सब कुछ बहुत अधिक मॉड्यूलर बनाता है - सी के लिए एक विधि को …

5
क्या मैं एनकैप्सुलेशन को तोड़ने के बिना निर्भरता इंजेक्शन का उपयोग कर सकता हूं?
यहाँ मेरा समाधान और परियोजनाएं हैं: बुकस्टोर (समाधान) BookStore.Coupler (परियोजना) Bootstrapper.cs BookStore.Domain (परियोजना) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (परियोजना) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (परियोजना) Global.asax BookStore.BatchProcesses (परियोजना) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), …

7
क्या यह एक बुरा विचार है कि एक वर्ग विधि है जो कक्षा चर को पारित कर दिया गया है?
यहाँ मेरा मतलब है: class MyClass { int arr1[100]; int arr2[100]; int len = 100; void add(int* x1, int* x2, int size) { for (int i = 0; i < size; i++) { x1[i] += x2[i]; } } }; int main() { MyClass myInstance; // Fill the arrays... myInstance.add(myInstance.arr1, myInstance.arr2, …

1
C ++ में निजी सदस्य कार्यों को एनकैप्सुलेट करने के लिए मित्र वर्गों का उपयोग करना - अच्छा अभ्यास या दुरुपयोग?
तो मैंने देखा कि ऐसा कुछ करके निजी कार्यों को हेडर में रखने से बचना संभव है: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // …

3
सार्वजनिक, संरक्षित, निजी का उपयोग करने के लिए सर्वोत्तम अभ्यास?
क्या यह कहना उचित है कि किसी चीज को privateकोड करते समय सामने वाले को सब कुछ डिफ़ॉल्ट करने के लिए अच्छा अभ्यास है? और उसके बाद ही इसे अपग्रेड करें protectedयदि एक उपवर्ग को इसकी आवश्यकता है, या publicयदि किसी अन्य वर्ग को इसकी आवश्यकता है?

5
क्या मुझे हमेशा एक आंतरिक डेटा संरचना को पूरी तरह से अलग करना चाहिए?
कृपया इस वर्ग पर विचार करें: class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } यह वर्ग उस सरणी को उजागर करता है जिसका उपयोग वह डेटा संग्रहीत करने के लिए करता है, जो किसी भी ग्राहक कोड में रुचि रखता …

4
क्या मैं एनकैप्सुलेशन अति प्रयोग से पीड़ित हूं?
मैंने विभिन्न परियोजनाओं में अपने कोड में कुछ देखा है जो लगता है कि मेरे लिए कोड गंध और कुछ बुरा है, लेकिन मैं इससे निपट नहीं सकता। "क्लीन कोड" लिखने की कोशिश करते समय मैं अपने कोड को पढ़ने में आसान बनाने के लिए निजी तरीकों का इस्तेमाल करता …

4
नेस्टेड क्लासेस: एक उपयोगी उपकरण या एक एनकैप्सुलेशन उल्लंघन?
तो मैं अभी भी बाड़ पर हूं कि मुझे इनका उपयोग करना चाहिए या नहीं। मुझे लगता है कि यह एनकैप्सुलेशन का एक चरम उल्लंघन है, हालांकि मुझे लगता है कि मैं अपने कोड में अधिक लचीलापन प्राप्त करते हुए कुछ हद तक इनकैप्सुलेशन प्राप्त करने में सक्षम हूं। पिछले …

4
क्या किसी विधि का नाम बदलना एनकैप्सुलेशन को संरक्षित कर सकता है?
मैं इस पृष्ठ को पढ़ रहा था , जब गेटर्स / सेटर उचित हैं, और ओपी ने निम्नलिखित कोड नमूना दिया था: class Fridge { int cheese; void set_cheese(int _cheese) { cheese = _cheese; } int get_cheese() { return cheese; } } void go_shopping(Fridge fridge) { fridge.set_cheese(fridge.get_cheese() + 5); } …

5
यह कैसे स्पष्ट करें कि एक फ़ंक्शन को बाहर से एक्सेस किया जा रहा है?
यह एक C विशिष्ट प्रश्न है। मैं .hफ़ाइल के माध्यम से केवल कुछ कार्यों को उजागर करते हुए, अनुवाद इकाई की सीमाओं के अंदर सब कुछ संभव रखने की कोशिश कर रहा हूं । यही है, मैं staticफ़ाइल-स्तरीय ऑब्जेक्ट के लिए लिंकेज दे रहा हूं । अब, कुछ कार्यों को …
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.