Liskov प्रतिस्थापन सिद्धांत मूल रूप से आपको कार्यान्वयन विरासत से अधिक उपयोग करने की अनुमति नहीं देता है: आपको कोड पुन: उपयोग के लिए विरासत का उपयोग कभी नहीं करना चाहिए (इसके लिए संरचना है)! एलएसपी का पालन करने से, आप यह सुनिश्चित कर सकते हैं कि वास्तव में आपके सुपरक्लास और आपके उपवर्ग के बीच "एक-एक संबंध" मौजूद है।
यह क्या कहता है कि आपके उपवर्गों को उपवर्ग में विधियों के कार्यान्वयन के लिए उपवर्ग के सभी तरीकों को एक समान तरीके से लागू करना चाहिए। आपको NOP लागू करने के साथ एक विधि को ओवरराइड नहीं करना चाहिए या जब सुपरपाइप अपवाद को फेंकता है, तो उसे वापस करना चाहिए; अनुबंध की शर्तों द्वारा डिजाइन में कहा गया है, आपको एक विधि को ओवरराइड करते समय सुपरक्लास से विधि के अनुबंध का सम्मान करना चाहिए। इस सिद्धांत को तोड़ने के खिलाफ बचाव करने का एक तरीका यह है कि कभी भी किसी कार्यान्वित पद्धति को ओवरराइड न किया जाए; इसके बजाय एक इंटरफ़ेस निकालें और दोनों वर्गों में उस इंटरफ़ेस को लागू करें।
इंटरफ़ेस पृथक्करण सिद्धांत , एकल जिम्मेदारी सिद्धांत और GRASP से उच्च सहशिक्षा सिद्धांत किसी भी तरह से संबंधित हैं; वे इस तथ्य का उल्लेख करते हैं कि एक इकाई को केवल एक चीज के लिए जिम्मेदार होना चाहिए ताकि परिवर्तन का केवल एक कारण हो ताकि परिवर्तन बहुत आसानी से हो सके।
यह वास्तव में कहता है कि यदि कोई वर्ग इंटरफ़ेस को लागू करता है तो उसे उन सभी इंटरफ़ेस के तरीकों को लागू करना चाहिए और उनका उपयोग करना चाहिए। यदि ऐसे तरीके हैं जो उस विशेष वर्ग में आवश्यक नहीं हैं, तो इंटरफ़ेस अच्छा नहीं है और इसे दो इंटरफेस में विभाजित किया जाना चाहिए जिसमें केवल मूल वर्ग द्वारा आवश्यक विधियां हैं। इसे एक पीओवी से माना जा सकता है, जो इस तथ्य से पिछले सिद्धांत से संबंधित है कि यह आपको बड़े इंटरफेस बनाने की अनुमति नहीं देता है ताकि उनका कार्यान्वयन एलएसपी को तोड़ सके।
आप फैक्टरी पैटर्न में निर्भरता उलटा देख सकते हैं ; यहाँ दोनों उच्च-स्तरीय घटक (ग्राहक) और निम्न-स्तरीय घटक (निर्मित होने के लिए व्यक्तिगत उदाहरण) अमूर्तता पर निर्भर करते हैं(अंतरपटल)। एक स्तरित वास्तुकला में इसे लागू करने का एक तरीका: आपको उस परत में एक परत को एक इंटरफ़ेस को परिभाषित नहीं करना चाहिए जिसे लागू किया जाता है लेकिन मॉड्यूल में जिसे कहा जाता है। उदाहरण के लिए डेटा स्रोत परत में एपीआई डेटा स्रोत परत में नहीं लिखा जाना चाहिए, लेकिन व्यापार तर्क परत में, जहां इसे कहा जाना चाहिए। इस तरह, डेटा स्रोत परत विरासत में मिलती है / व्यापार में तर्क के रूप में परिभाषित व्यवहार पर निर्भर करता है (इस प्रकार उलटा) और इसके विपरीत नहीं (जैसा कि सामान्य तरीके से होगा)। यह डिजाइन में लचीलापन प्रदान करता है, जिससे व्यापार तर्क को किसी भी कोड परिवर्तन के बिना काम करने की सुविधा मिलती है, एक और पूरी तरह से अलग डेटा स्रोत के साथ।