मैं वंशानुक्रम की उपयोगिता की व्याख्या कैसे कर सकता हूं? [बन्द है]


16

जब ओओआर में वंशानुक्रम की अवधारणा को समझाने की कोशिश की जाती है, तो आम उदाहरण अक्सर स्तनधारियों का उदाहरण होता है। IMHO, यह वास्तव में एक बुरा उदाहरण है, क्योंकि यह इस अवधारणा को गलत तरीके से उपयोग करने के लिए newbies का नेतृत्व करेगा। और इसके अलावा, यह एक सामान्य डिजाइन नहीं है कि वे अपने दिन-प्रतिदिन के डिजाइन कार्य का सामना करेंगे।

तो, एक अच्छी, सरल और ठोस समस्या क्या होगी जो इनहेरिटेंस का उपयोग करके हल की जाती है?


1
"आम उदाहरण अक्सर स्तनधारी होते हैं"? क्या मतलब? क्या आप इसके लिए कोई लिंक, संदर्भ या उद्धरण प्रदान कर सकते हैं?
एस.लॉट


3
इनहेरिटेंस = बिल गेट्स के बच्चों के ट्रस्ट फंड की उपयोगिता को समझाने के लिए सबसे अच्छा वास्तविक उदाहरण क्या होगा?
मार्टिन बेकेट

1
@ क्रिस: यह सवाल रचनात्मक कैसे नहीं है? क्या आप घोषणा कर रहे हैं कि एक पूछने वाला और 14 उत्तर देने वाले सभी का समय बर्बाद कर रहे हैं?
डैन डैस्कलेस्क्यू

@DanDascalescu - इसे दो साल पहले एक झंडे के जवाब में बंद किया गया था "कृपया इसे रचनात्मक नहीं मानकर बंद करने पर विचार करें: इस पर जवाब देने वाले जवाबों को देखते हुए, यह एक विशिष्ट सूची / मतदान प्रश्न जैसा लगता है"। अगर आपको लगता है कि यह गलत है, तो इसे स्पष्ट करें कि यह नहीं है और समुदाय को पुन: रिव्यू कतार के माध्यम से निर्णय लेने दें।
ChrisF

जवाबों:


15

स्तनधारियों जैसे विशुद्ध शैक्षणिक उदाहरण में कुछ भी गलत नहीं है। मुझे आयत / वर्ग का उदाहरण भी पसंद है क्योंकि यह बताता है कि वास्तविक-विश्व कराधान हमेशा आपके द्वारा अपेक्षित विरासत के संबंध में सीधे अनुवाद नहीं करते हैं।

मेरी राय में, हर दिन सबसे विहित उदाहरण जीयूआई टूलकिट है। यह कुछ ऐसा है जिसका सभी ने उपयोग किया है, लेकिन हो सकता है कि शुरुआती लोगों ने इस बारे में तर्क न दिया हो कि वे हुड के नीचे कैसे काम करते हैं। आप किसी भी कार्यान्वयन के विस्तृत ज्ञान की आवश्यकता के बिना सभी कंटेनरों, सभी विगेट्स, घटनाओं आदि के लिए क्या व्यवहार कर सकते हैं, इस बारे में बात कर सकते हैं।


5
GUI टूलकिट के लिए +1 ... और मुझे आकृतियों का उदाहरण भी पसंद है, एक आकृति के साथ एक आधार के रूप में न्यूनतम ड्रा () और अनुकूलित ड्रा () के साथ वंश के आकार।
यति sagade

14

मेरा वास्तविक दुनिया का उदाहरण एक साधारण एचआर एप्लिकेशन का डोमेन मॉडल है। मैं बताता हूं कि हम कर्मचारी नामक एक आधार वर्ग बना सकते हैं , क्योंकि निश्चित रूप से, प्रबंधक भी कर्मचारी हैं।

public class Employee
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public int Code { get; set; }

    public string GetInsuranceHistory()
    {
        // Retrieving insurance history based on employee code.
    }
}

तब मैं समझाने कि डेवलपर्स रहे हैं कर्मचारियों , परीक्षकों हैं कर्मचारियों , परियोजना प्रबंधकों रहे हैं कर्मचारियों । इस प्रकार वे सभी कर्मचारी वर्ग से विरासत में मिल सकते हैं ।


2
उत्तराधिकार के लाभ दिखाने के लिए, यह भी दिखाना दिलचस्प हो सकता है कि डेवलपर्स कर्मचारियों से कैसे भिन्न होते हैं। यदि कोई अंतर नहीं है, तो कोई डेवलपर वर्ग बनाने की कोई आवश्यकता नहीं है।
डेविड

3
लगता है जैसे Employeeएक abstractवर्ग भी हो सकता है।
स्टुपरयूजर

+1 यह मेरे द्वारा उपयोग किए गए अधिकांश शिक्षकों का उदाहरण है और मुझे वास्तव में पसंद आया। यह पूरी तरह से समझ में आता है और विरासत का उपयोग कैसे करें पर एक वास्तविक दुनिया उदाहरण दिया।
डेविड पीटरमैन

18
सिवाय इसके अभ्यास में कभी काम नहीं होता है क्योंकि हमेशा कम से कम एक व्यक्ति होता है जिसे ए Developerऔर ए दोनों की आवश्यकता होती है Tester। एक अन्य समान स्थिति एक संपर्क डेटाबेस है जहां आपके पास है Customerऔर Supplier, लेकिन जैसा कि किसी ने भी ऐसी प्रणाली बनाई है, आपको बताएगा, हमेशा एक ऐसा मामला होता है जहां Companyदोनों होते हैं। इसीलिए इनमें से अधिकांश उदाहरण आपको गलत दिशा में ले जाते हैं।
स्कॉट व्हिटलॉक

11

जो अलग-अलग होता है उसे एन्क्रिप्ट करें ... उन्हें एक टेम्पलेट विधि पैटर्न दिखाएं , यह आधार वर्ग में सामान्य व्यवहार डालकर और उपवर्गों में भिन्न व्यवहार को अलग करके विरासत की उपयोगिता को प्रदर्शित करता है।

UI controlsऔर Streamsविरासत की उपयोगिता के लिए भी एक बहुत अच्छा उदाहरण है।


मुझे लगता है कि कारखाना एक बेहतर उदाहरण होगा।
Let_Me_Be

1
@Let_Me_Be: मुझे लगता है कि एक कारखाने और विरासत के बीच संबंध इसकी प्रकृति में अप्रत्यक्ष है। ज़रूर, यह ठोस प्रकार का उत्पादन करता है और सार / आधार प्रकार देता है, लेकिन यह सिर्फ एक इंटरफ़ेस प्रकार भी वापस कर सकता है! Imho कि क्लासिक पशु उदाहरण से बेहतर नहीं है।
फाल्कन

@Let_Me_Be: इसके अलावा, एक अमूर्त कारखाना काफी जटिल उदाहरण है जिसमें विभिन्न वंशानुगत पदानुक्रम (वस्तुओं के लिए, कारखानों के लिए एक) शामिल हैं। मुझे लगता है कि यह विरासत का एक अच्छा उपयोग है, लेकिन एक अच्छा और सरल उदाहरण नहीं है।
फाल्कन

3

याद है

किसी वस्तु का प्रत्येक उदाहरण विरासत की उपयोगिता का एक ठोस उदाहरण है!

यदि आपका मतलब विशेष रूप से वर्गीय विरासत से है, तो अब आप टैक्सोनोमीज़ की दुनिया में हैं, और सिस्टम के लक्ष्यों द्वारा इनका उपयोग करने के तरीके अलग-अलग होंगे। जानवरों / स्तनधारियों का उदाहरण जीवविज्ञान से एक सामान्य और उम्मीद से परिचित करोनोमी का उपयोग करता है, लेकिन यह (जैसा कि आपने उल्लेख किया है) प्रोग्रामिंग की अधिकांश समस्याओं के लिए लगभग बेकार है।

तो कुछ सार्वभौमिक प्रयास करें: एक कार्यक्रम की धारणा। प्रत्येक कार्यक्रम शुरू होता है, चलता है, और समाप्त होता है। हर प्रोग्राम का एक नाम और वैकल्पिक कमांड-लाइन पैरामीटर होता है। तो एक बेस प्रोग्राम क्लास बहुत उपयोगी होगा, निष्पादन शुरू करने के लिए, कमांड लाइन के तर्कों को पकड़ना और संसाधित करना, मुख्य तर्क को चलाना, और इनायत से बंद करना।

यही कारण है कि इतनी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाएं प्रोग्राम क्लास प्रदान करती हैं, या कुछ ऐसा जो प्रोग्राम क्लास की तरह व्यवहार करता है।


तो, आप एक प्रोग्राम बनाते हैं जिसमें कई प्रोग्राम हैं? :) मेरे अनुभव में, प्रोग्राम ऑब्जेक्ट्स लगभग हमेशा एकल होते हैं जिनकी कोई विरासत नहीं होती है, इसलिए यह सबसे अच्छा उदाहरण नहीं है।
कीपला

@keppla: क्या आपने कभी जावा या .NET का इस्तेमाल किया है? .NET में एक स्पष्ट प्रोग्राम क्लास है, जावा का निहित है। वे सिंगलटन नहीं हैं
स्टीवन ए। लोवे

मैंने जावा का उपयोग किया, संस्करण 1.4.2 के आसपास। इसके बाद, केवल स्थैतिक शून्य मुख्य था, इसलिए मुझे लगता है कि यह थोड़ा बदल गया है। प्रोग्राम क्लास के एक से अधिक उदाहरण होने का एक विशिष्ट कारण क्या होगा?
कीपला

@keppla: जावा का स्टेटिक शून्य मुख्य रूप से एंट्री क्लास को प्रोग्राम का प्रतिनिधित्व करता है। आपका प्रोग्राम चलाने वाला प्रत्येक उपयोगकर्ता इसका एक नया उदाहरण बनाता है। इस समय, मेरे पास Google Chrome के तीन उदाहरण चल रहे हैं, चार वर्ड डॉक्यूमेंट, तीन नोटपैड और दो विंडोज एक्सप्लॉर्स। अगर वे सभी सिंगलटन होते तो मैं ऐसा कभी नहीं कर पाती।
स्टीवन ए। लोव

1
मुझे लगता है कि आप परिभाषा को थोड़ा बढ़ा रहे हैं। class Programm { public static void main(String[] args) { system.out.println('hello world'); }}एक न्यूनतम जावा प्रोग्राम है। जब मैं इसे कॉल करता हूं, तो प्रोग्राम का कोई उदाहरण नहीं है। कार्यक्रम किसी भी चीज़ से नहीं निकलता है। जब मैं 3 प्रक्रियाएं शुरू करता हूं (जैसे आप crhome के साथ करते हैं), तो 3 प्रोग्राम हो सकते हैं, लेकिन स्मृति के व्यक्तिगत क्षेत्रों में, अभी भी केवल एक ही कार्यक्रम है। इम्हो, सिंगलटन का तात्पर्य है 'प्रति प्रक्रिया केवल एक उदाहरण', प्रति मशीन नहीं। यदि हां, तो एकल बनाना असंभव होगा, कोई भी चीज आपको दो बार किसी भी कोड को चलाने से नहीं रोकती है।
कीपला

3

मैं काम पर कैमरों के साथ काम कर रहा हूं। हमारे पास ऐसे उपकरण हैं जो विभिन्न मॉडलों से जुड़ते हैं, इसलिए हमारे पास एक सार "कैमरा क्लास" है और प्रत्येक मॉडल इस वर्ग से उस कैमरे की विशिष्ट कार्यक्षमता का समर्थन करने के लिए विरासत में मिला है। यह एक वास्तविक दुनिया का उदाहरण है और इसे समझना मुश्किल नहीं है।


2
यदि आपके पास है तो यह टूट सकता है, उदाहरण के लिए एक मॉडल जो दोनों एक Cameraहै Phone(जैसा कि हम सभी अब अपनी जेब में करते हैं)। इसे किस बेस क्लास से विरासत में लेना चाहिए? या यह सिर्फ ICameraऔर IPhoneइंटरफेस दोनों को लागू नहीं करना चाहिए ? (हा हा)
स्कॉट व्हिटलॉक

2
@ संकेत: आप IPhone इंटरफ़ेस को लागू नहीं कर सकते, या आप Apple द्वारा मुकदमा दायर करेंगे।
मेसन व्हीलर

3

रसायन तत्व उदाहरण

यह मेरे दिमाग से निकला एक और उदाहरण है:

कक्षा तत्व_
{
    डबल परमाणु ऊर्जा; // तत्व का परमाणु भार
    डबल एटॉमिकनंबर; // तत्व की परमाणु संख्या
    स्ट्रिंग गुण; // तत्व के गुण
    // अन्य, यदि कोई हो
}


वर्ग आइसोटोप तत्व तत्व का विस्तार करता है
{
    डबल हाफ़ लाइफ;
   // अन्य यदि कोई हो

}

2
हालांकि परमाणु परमाणु (शायद?) पूर्णांक हो सकता है ...
एंड्रयू

मैं उस के लिए विरासत का उपयोग नहीं करेगा। isotopeका कोई विशेष मामला नहीं है Elemenet। मेरे पास एक Elementसंपत्ति होगी Isotope
कोडइन्चोस

2

वास्तविक दुनिया के उदाहरण लगभग हमेशा गलत हो जाते हैं क्योंकि वे ऐसे उदाहरण देते हैं जहां हमेशा कुछ होने की संभावना दोनों होती है TypeAऔर TypeBकई भाषाओं की एकल विरासत पदानुक्रम इसकी अनुमति नहीं देते हैं।

जितना अधिक मैं कार्यक्रम करता हूं उतना ही मैं विरासत से दूर होता जाता हूं।

यहां तक ​​कि "विरासत" शब्द का भी अनुचित तरीके से उपयोग किया जाता है। उदाहरण के लिए, आपको अपने पिता के लक्षणों में से 50% और आपकी माँ के लक्षणों में से 50% विरासत में मिली हैं। वास्तव में आपका डीएनए आपके पिता के डीएनए का आधा हिस्सा है और आपकी माता का आधा डीएनए। ऐसा इसलिए है क्योंकि जीव विज्ञान वास्तव में वंशानुक्रम पर रचना का पक्षधर है , और आपको भी होना चाहिए।

बस इंटरफेस लागू करना, या इससे भी बेहतर, "डक टाइपिंग", प्लस डिपेंडेंसी इंजेक्शन, उन लोगों को पढ़ाने के लिए बहुत बेहतर है जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में नए हैं।


1

मैं उन्हें केवल एक वास्तविक जीवन का उदाहरण दिखाता हूँ। उदाहरण के लिए, अधिकांश यूआई फ्रेमवर्क में आप किसी तरह के "डायलॉग" या "विंडो" या "कंट्रोल" क्लास से निकलते हैं।


1

अच्छा उदाहरण छँटाई में तुलना कार्य है:

template<class T>
class CompareInterface {
public:
   virtual bool Compare(T t1, T t2) const=0;
};
class FloatCompare : public CompareInterface<float> { };
class CompareImplementation : public FloatCompare {
public:
   bool Compare(float t1, float t2) const { return t1<t2; }
};
template<class T>
void Sort(T*array, int size, CompareInterface<T> &compare);

केवल समस्या यह है कि newbies भी अक्सर लगता है कि प्रदर्शन अच्छे कोड से अधिक महत्वपूर्ण है ...


0

मेरा वास्तविक विश्व उदाहरण एक वाहन है:

public class Vehicle
{
    public Vehicle(int doors, int wheels)
    {
        // I describe things that should be
        // established and "unchangeable" 
        // when the class is first "made"
        NumberOfDoors = doors;
        NumberOfWheels = wheels;
    }

    public void RollWindowsUp()
    {
        WindowsUp = true;
    }

    // I cover modifiers on properties to show
    // how to protect certain things from being
    // overridden
    public int NumberOfDoors { get; private set; }
    public int NumberOfWheels { get; private set; }

    public string Color { get; set; }
    public bool WindowsUp { get; set; }
    public int Speed { get; set; }
}

public class Car : Vehicle
{
    public Car : base(4, 4)
    {

    }
}

public class SemiTruck : Vehicle
{
    public SemiTruck : base(2, 18)
    {

    }
}

यह उदाहरण आपकी इच्छानुसार विस्तृत हो सकता है, और किसी भी संशोधक के उपयोग को समझाने के लिए वाहनों से जुड़ी सभी प्रकार की संपत्तियाँ हैं, जिन्हें आप सिखाना चाहते हैं।


2
मुझे हमेशा एक उदाहरण के रूप में वाहनों का उपयोग करने से नफरत है , क्योंकि यह कोड को सुधारने के लिए विरासत का उपयोग कैसे किया जा सकता है, यह समझने के लिए किसी भी नए प्रोग्रामर को नहीं मिलता है। वाहन अत्यधिक जटिल मशीनें हैं जो गैर-प्रोग्रामर के दिमाग में बहुत सारे गैर-अमूर्त विचारों को ध्यान में रखते हैं। कोड में इसका वर्णन करने की कोशिश करने से औसत नौसिखियों का मानना ​​है कि उदाहरण से बहुत सारे विवरण बचे हुए हैं और यह महसूस करते हैं कि वे काम करने के लिए कुछ पाने के करीब नहीं हैं। मैं अनुभव से यह कहते हैं, के रूप में वह यह है कि वास्तव में मैं कैसे महसूस किया जब किसी वाहन का उपयोग करने के लिए मेरे लिए यह समझाने की कोशिश की।
रिवलॉक

@ Stargazer712: मैं मुख्य रूप से वाहनों का उपयोग करता हूं क्योंकि वे आपके जैसे ही जटिल या सरल हो सकते हैं। मैं इसे अपने शिष्य के स्तर को निर्धारित करने के लिए प्रशिक्षक के फैसले पर छोड़ता हूं। मैंने अपनी पत्नी को बुनियादी ओआरओपी समझाया (जिनके पास शून्य प्रोग्रामिंग का अनुभव है) सामान्य बुनियादी बातों का वर्णन करने वाले वाहन के सरल गुणों का उपयोग करते हुए। सभी वाहनों में दरवाजे होते हैं, सभी वाहनों में पहिए आदि होते हैं। वस्तु उदाहरण को खराब पाठ योजना के लिए दोषी नहीं ठहराया जा सकता है।
जोएल एथरटन

आपकी पत्नी कोड लिखने की कोशिश नहीं कर रही थी। मैं बहुत सुरक्षित रूप से कह सकता हूं कि वाहन के उदाहरणों ने मुझे विरासत को समझने में मदद करने के लिए कुछ नहीं किया। जो कुछ भी आप विरासत का वर्णन करने के लिए उपयोग करते हैं, वह पूर्ण और व्यावहारिक होना चाहिए । लक्ष्य का वर्णन इस तरह से नहीं है कि एक गैर-प्रोग्रामर इसे समझ सके। लक्ष्य इसे इस तरह से वर्णन करना है कि एक नौसिखिया प्रोग्रामर इसका उपयोग कर सकता है, और ऐसा करने का एकमात्र तरीका नौसिखिया उदाहरण दिखाता है कि एक पेशेवर प्रोग्रामर इसका उपयोग कैसे करेगा।
रिवलॉक

@ Stargazer712: मैं शुरू में एक घटिया पाठ योजना पर विरासत को समझने में आपकी असमर्थता डालूंगा। मैंने अपने साथ काम करने वाले जूनियर्स को विरासत की व्याख्या करने के लिए वाहनों का भी उपयोग किया है, और मुझे कभी भी इस अवधारणा के साथ कोई समस्या नहीं हुई है। मेरी राय में, यदि एक पाठ योजना पूरी तरह से और ठीक से निर्मित है, तो एक वाहन वस्तु पूर्ण और व्यावहारिक दोनों है। इंटरनेट पर 1 यादृच्छिक आदमी को बदलने के लिए नहीं जा रहा है कि 30 या तो इंटर्न और कनिष्ठ देवों के चेहरे में जिन्हें मैंने OOP सिखाया है। यदि आपको वाहन पसंद नहीं है, तो नीचे वोट करें और आगे बढ़ें।
जोएल एथरटन

जैसा आप चाहें ....
riwalk

0

यह गैर-स्तनपायी, गैर-पक्षी, गैर-मछली उदाहरण मदद कर सकता है:

public abstract class Person {

    /* this contains thing all persons have, like name, gender, home addr, etc. */

    public Object getHomeAddr() { ... }

    public Person getName() { ... }

}

public class Employee extends Person{

    /* It adds things like date of contract, salary, position, etc */

    public Object getAccount() { ... }

}

public abstract class Patient extends Person {
    /* It adds things like medical history, etc */
}

फिर

public static void main(String[] args) {

    /* you can send Xmas cards to patients and employees home addresses */

    List<Person> employeesAndPatients = Factory.getListOfEmployeesAndPatients();

    for (Person p: employeesAndPatients){
        sendXmasCard(p.getName(),p.getHomeAddr());
    }

    /* or you can proccess payment to employees */

    List<Employee> employees = Factory.getListOfEmployees();

    for (Employee e: employees){
        proccessPayment(e.getName(),e.getAccount());
    }       

}

नोट: बस रहस्य न बताएं: व्यक्ति स्तनपायी का विस्तार करता है।


1
तब तक काम करता है जब तक आपका एक कर्मचारी भी रोगी न हो।
स्कॉट व्हिटलॉक

इस मामले में, मुझे लगता है कि यह रोगी और कर्मचारी को अमूर्त वर्गों के बजाय इंटरफेस के रूप में घोषित करने के लिए अधिक समझ में आता है। यह आपको व्यक्ति को कई इंटरफेस लागू करने की सुविधा देता है।
जिन किम

@ जीनकिम - मैं पूरी तरह सहमत हूं, यही बेहतर तरीका है।
स्कॉट व्हिटलॉक

@JinKim वे अनन्य नहीं हैं। आप किसी व्यक्ति को किसी भी समय एक कर्मचारी या एक रोगी के रूप में मानते हैं, लेकिन एक ही समय में नहीं। दो इंटरफेस ठीक है, लेकिन तब आप दोनों को लागू करने वाले एक ठोस वर्ग को क्या कहते हैं, एम्प्लॉईपिएंट? आपके पास कितने संयोजन होंगे?
ट्यूलेंस कोरडोवा

आप जो चाहें कंक्रीट क्लास को बुला सकते हैं। यदि कोड केवल कर्मचारियों से निपटने की अपेक्षा करता है, तो आप संदर्भ को एक कर्मचारी घोषित करते हैं। (अर्थात कर्मचारी कर्मचारी = नया व्यक्ति); शायद ही आप एक संदर्भ को सीधे ठोस वर्ग के रूप में घोषित करना चाहते हैं।
जिन किम

0

कैसे बीजीय भावों के पदानुक्रम के बारे में। अच्छा है क्योंकि इसमें विरासत और रचना दोनों शामिल हैं:

+--------------------+------------------------+
| Expression         |<------------------+    |
+--------------------+----------+        |    |
| + evaluate(): int  |<---+     |        |    |
+--------------------+    |     |        |    |
          ^               |     |        |    |
          |               |     |        |    |
   +--------------+  +---------------+  +-------------+  ...
   | Constant     |  | Negation      |  | Addition    |
   +--------------+  +---------------+  +-------------+
   | -value: int  |  |               |  |             |
   +--------------+  +---------------+  +-------------+
   | +evaluate()  |  | +evaluate()   |  | +evaluate() |
   | +toString()  |  | +toString()   |  | +toString() |
   +--------------+  +---------------+  +-------------+

   Addition(Constant(5), Negation(Addition(Constant(3),Constant(2))))
   (5 + -(3 + 2)) = 0

जड़ अभिव्यक्ति के अपवाद के साथ, अन्य सभी अभिव्यक्तियाँ एक अभिव्यक्ति हैं और इनमें एक या अधिक अभिव्यक्तियाँ हैं।


-1

मैं उदाहरण के तौर पर पक्षियों का उपयोग करूंगा

जैसे चिकन, बत्तख, चील

मैं समझाता हूँ कि दोनों पंजे, चोंच और पंख हैं लेकिन उनकी विशेषताएं अलग हैं।

मुर्गियां उड़ नहीं सकतीं, तैर नहीं सकतीं, कीड़े नहीं खा सकतीं, अनाज खा सकती हैं

बतख उड़ नहीं सकते, तैर सकते हैं, अनाज खा सकते हैं, कीड़े नहीं खा सकते

ईगल उड़ सकता है, तैर नहीं सकता, कीड़े खा सकता है, अनाज नहीं खा सकता


4
मैंने एक बार पढ़ा कि रचना और इंटरफेस संभवतः इस प्रकार की अवधारणा को व्यक्त करने का सबसे अच्छा तरीका है यानी उड़ना, तैरना आदि
dreza

एक बतख उड़ नहीं सकता है ?!
एडम कैमरन

-3

आपकी विशिष्ट रेल-क्लोन कई व्यावहारिक उदाहरण प्रदान करती है : आपके पास (सार) आधार मॉडल वर्ग है, जो सभी डेटा हेरफेर को अंजाम देता है और आपके पास आधार नियंत्रक वर्ग है, जो सभी HTTP-संचार को एन्क्रिप्ट करता है।


यह उत्तर खराब क्यों है इसकी विस्तृत जानकारी दें।
केप्पला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.