यह एक शास्त्रीय उदाहरण है कि लोग किस तरह से लिस्कोव सबस्ट्रेशन सिद्धांत का उल्लंघन करने का निर्णय लेते हैं। मैं दृढ़ता से इसे हतोत्साहित करता हूं लेकिन संभवतः एक अलग समाधान को प्रोत्साहित करेगा:
- शायद आप जिस वर्ग को लिख रहे हैं वह इंटरफ़ेस प्रदान नहीं करता है यदि इंटरफ़ेस में सभी सदस्यों का उपयोग नहीं है।
- वैकल्पिक रूप से, वह इंटरफ़ेस कई काम कर सकता है और इंटरफ़ेस अलगाव सिद्धांत के अनुसार अलग किया जा सकता है।
यदि आपके लिए पहला मामला है, तो बस उस वर्ग पर इंटरफ़ेस लागू न करें। इसे बिजली के सॉकेट की तरह समझें जहां ग्राउंड होल अनावश्यक है इसलिए यह वास्तव में जमीन से जुड़ा नहीं है। आप जमीन के साथ कुछ भी प्लग नहीं करते हैं और कोई बड़ी बात नहीं है! लेकिन जैसे ही आप किसी ऐसी चीज का इस्तेमाल करते हैं जिसके लिए जमीन की जरूरत होती है - आप एक शानदार असफलता के लिए हो सकते हैं। बेहतर एक नकली जमीन छेद छिद्रण में नहीं। इसलिए यदि आपकी कक्षा वास्तव में इंटरफ़ेस का इरादा नहीं करती है, तो इंटरफ़ेस को लागू न करें।
यहाँ विकिपीडिया से कुछ त्वरित बिट्स दिए गए हैं:
Liskov प्रतिस्थापन सिद्धांत को केवल "पूर्व स्थितियों को मजबूत न करें, और बाद की स्थितियों को कमजोर न करें" के रूप में तैयार किया जा सकता है।
अधिक औपचारिक रूप से, Liskov प्रतिस्थापन सिद्धांत (LSP) एक उप-संबंध संबंध की एक विशेष परिभाषा है, जिसे (मजबूत) व्यवहार उपप्रकार कहा जाता है, जिसे शुरू में बारबरा लिस्कॉव द्वारा 1987 में सम्मेलन अभिभाषण में डेटा अपमानजनक और पदानुक्रम के रूप में पेश किया गया था। यह सिर्फ़ वाक्यात्मक संबंध के बजाय एक शब्दार्थ है क्योंकि यह एक पदानुक्रम में प्रकारों की शब्दार्थ अंतर को सुनिश्चित करने का इरादा रखता है , [...]
एक ही अनुबंध के विभिन्न कार्यान्वयनों के बीच सिमेंटिक इंटरऑपरेबिलिटी और प्रतिस्थापन के लिए - आपको उन सभी को समान व्यवहार करने की आवश्यकता है।
इंटरफ़ेस पृथक्करण सिद्धांत इस विचार से बोलता है कि इंटरफेस को कोएक्टिव सेट में अलग किया जाना चाहिए जैसे कि आपको एक ऐसे इंटरफ़ेस की आवश्यकता नहीं है जब आप केवल एक सुविधा चाहते हैं । एक बिजली के सॉकेट के इंटरफ़ेस के बारे में फिर से सोचें, इसमें एक थर्मोस्टैट भी हो सकता है, लेकिन यह बिजली के सॉकेट को स्थापित करना कठिन बना देगा और गैर-हीटिंग उद्देश्यों के लिए उपयोग करना कठिन बना सकता है। थर्मोस्टैट के साथ एक बिजली के सॉकेट की तरह, बड़े इंटरफेस को लागू करना मुश्किल है और उपयोग करने में मुश्किल है।
इंटरफ़ेस-पृथक्करण सिद्धांत (ISP) कहता है कि किसी भी ग्राहक को उन तरीकों पर निर्भर होने के लिए मजबूर नहीं किया जाना चाहिए जो इसका उपयोग नहीं करते हैं। [१] आईएसपी उन इंटरफेस को विभाजित करता है जो छोटे और अधिक विशिष्ट लोगों में बहुत बड़े हैं ताकि ग्राहकों को केवल उन तरीकों के बारे में जानना होगा जो उनके लिए रुचि रखते हैं।