Add_first (), add_last (), add_after (), remove_first (), remove_last () और remove () जैसे फ़ंक्शन के साथ एक क्लास लिंक्डलिस्ट मौजूद है
अब एक वर्ग स्टैक है जो कार्यात्मकता प्रदान करता है जैसे कि पुश (), पॉप (), झांकना () या शीर्ष (), और इन विधियों को लागू करने के लिए यह लिंक्डलिस्ट वर्ग के तरीकों का विस्तार करता है। क्या यह लिस्कोव प्रतिस्थापन सिद्धांत का उल्लंघन है?
उदाहरण के लिए, लिंक्ड सूची की nth स्थिति में नोड जोड़ने के लिए add_after () मामले पर विचार करें। यह बेस क्लास में किया जा सकता है लेकिन स्टैक क्लास में नहीं। क्या पोस्टकंडिशन यहां कमजोर किए जा रहे हैं या क्या आप add_after () विधि को स्टैक के शीर्ष पर जोड़ने के लिए संशोधित करते हैं?
इसके अलावा, यदि उल्लंघन नहीं है, तो क्या यह खराब डिज़ाइन है? और आप लिंक्डलिस्ट क्लास का उपयोग करके स्टैक कार्यक्षमता को कैसे लागू करेंगे?
LinkedList
? आप एक निश्चित जोशुआ बलोच (जिसने जावा संग्रह ढांचे को डिजाइन करने में एक प्रमुख भूमिका निभाई) की सलाह पर ध्यान केंद्रित करना चाह सकते हैं, जब उन्होंने कहा कि "उत्तराधिकार पर रचना को प्राथमिकता दें" - हो सकता है कि LinkedList
आपके स्टैक वर्ग के अंदर हो , लेकिन वास्तव में इसे विस्तारित न करें?
LinkedList
जो दृश्यों (रचना) के पीछे हैवी लिफ्टिंग करता है। इस तरह आपके कोड के उपयोगकर्ता गलती से एक स्टैक का उपयोग नहीं कर सकते हैं जहाँ उन्हें एक सूची या इसके विपरीत की आवश्यकता थी।