นี่เป็นตัวอย่างคลาสสิกของวิธีที่ผู้คนตัดสินใจละเมิดหลักการ Liskov Subtitution ฉันขอแนะนำอย่างยิ่ง แต่อาจกระตุ้นให้มีวิธีแก้ไขปัญหาที่แตกต่างกัน:
- บางทีคลาสที่คุณกำลังเขียนอาจไม่มีฟังก์ชันที่อินเทอร์เฟซกำหนดถ้าไม่ได้ใช้สมาชิกทั้งหมดของอินเทอร์เฟซ
- อีกทางหนึ่งอินเตอร์เฟสนั้นอาจทำหลายสิ่งและสามารถแยกออกได้ตามหลักการแยกส่วนต่อประสาน
หากสิ่งแรกคือสิ่งที่คุณต้องการอย่าเพิ่งใช้อินเทอร์เฟซกับคลาสนั้น คิดว่ามันเหมือนซ็อกเก็ตไฟฟ้าที่หลุมพื้นดินไม่จำเป็นจึงไม่จริงแนบไปกับพื้นดิน คุณไม่ได้เสียบอะไรกับพื้นและไม่มีเรื่องใหญ่! แต่ทันทีที่คุณใช้บางสิ่งบางอย่างที่จำเป็นต้องมีพื้น - คุณอาจจะล้มเหลวที่งดงาม ดีกว่าไม่ได้เจาะหลุมปลอมพื้นดินใน. ดังนั้นหากระดับของคุณไม่ได้จริงทำในสิ่งที่อินเตอร์เฟซที่มีความตั้งใจที่ไม่ได้ใช้อินเตอร์เฟซ
นี่คือบิตสั้น ๆ จากวิกิพีเดีย:
หลักการทดแทน Liskovสามารถกำหนดขึ้นมาได้ง่ายๆว่า "อย่าเพิ่มความแข็งแกร่งให้กับเงื่อนไขก่อนหน้าและอย่าทำให้สถานการณ์หลังอ่อนลง"
หลักการแทนที่ Liskov (LSP) เป็นคำจำกัดความเฉพาะของความสัมพันธ์ย่อยที่เรียกว่า (strong) subtyping พฤติกรรมที่เรียกว่า (strong) subtyping ที่ถูกนำมาใช้ครั้งแรกโดย Barbara Liskov ในการปราศรัยการปราศรัยการประชุมปี 1987 ที่มีชื่อว่า Data นามธรรมและลำดับชั้น มันเป็นความหมายมากกว่าความสัมพันธ์ทางวากยสัมพันธ์เพียงเพราะมันตั้งใจที่จะรับประกันการทำงานร่วมกันความหมายของประเภทในลำดับชั้น [... ]
สำหรับการทำงานร่วมกันทางความหมายและความสามารถในการสับเปลี่ยนระหว่างการใช้งานที่แตกต่างกันของสัญญาเดียวกัน - คุณต้องการให้พวกเขาทุกคนยอมรับพฤติกรรมที่เหมือนกัน
อินเตอร์เฟซที่แยกหลักการพูดถึงความคิดที่ว่าอินเตอร์เฟซที่ควรจะแยกออกเป็นชุดเหนียวเช่นที่คุณไม่จำเป็นต้องมีอินเตอร์เฟซที่ไม่สิ่งที่แตกต่างกันมากเมื่อคุณต้องการเพียงหนึ่งสิ่งอำนวยความสะดวก ลองนึกถึงอินเทอร์เฟซของซ็อกเก็ตไฟฟ้าอีกครั้งมันอาจมีเทอร์โมสแตท แต่มันจะทำให้การติดตั้งซ็อกเก็ตไฟฟ้าทำได้ยากขึ้นและอาจทำให้ยากต่อการใช้งานเพื่อจุดประสงค์ที่ไม่ร้อน เช่นซ็อกเก็ตไฟฟ้าที่มีเทอร์โมสตัทอินเตอร์เฟสขนาดใหญ่นั้นใช้งานยากและใช้งานยาก
อินเทอร์เฟซการแยกหลักการ (ISP) ระบุว่าลูกค้าไม่ควรถูกบังคับให้ต้องพึ่งพาวิธีที่ไม่ได้ใช้ [1] ISP แบ่งอินเตอร์เฟสที่มีขนาดใหญ่เป็นขนาดเล็กและเจาะจงมากขึ้นเพื่อให้ลูกค้าจะต้องรู้เกี่ยวกับวิธีการที่พวกเขาสนใจ