6
ทำความเข้าใจกับ“ การเขียนโปรแกรมไปยังส่วนต่อประสาน”
ฉันเจอคำว่า "การเขียนโปรแกรมไปยังอินเทอร์เฟซแทนที่จะใช้งาน" มากและฉันคิดว่าฉันเข้าใจความหมายของมัน แต่ฉันต้องการให้แน่ใจว่าฉันเข้าใจถึงประโยชน์และการใช้งานที่เป็นไปได้ "การเขียนโปรแกรมไปยังอินเทอร์เฟซ" หมายความว่าเมื่อเป็นไปได้เราควรอ้างถึงระดับนามธรรมของคลาส (อินเทอร์เฟซคลาสนามธรรมหรือบางครั้งเป็นซูเปอร์คลาสของการเรียงลำดับบางอย่าง) แทนที่จะอ้างถึงการใช้งานที่เป็นรูปธรรม ตัวอย่างทั่วไปใน Java คือการใช้: List myList = new ArrayList();ArrayList myList = new ArrayList();แทน ฉันมีคำถามสองข้อเกี่ยวกับเรื่องนี้: ฉันต้องการให้แน่ใจว่าฉันเข้าใจถึงประโยชน์หลักของวิธีนี้ ฉันคิดว่าประโยชน์ส่วนใหญ่มีความยืดหยุ่น การประกาศวัตถุเป็นข้อมูลอ้างอิงระดับสูงมากกว่าการนำไปปฏิบัติอย่างเป็นรูปธรรมช่วยให้มีความยืดหยุ่นและบำรุงรักษาได้มากขึ้นตลอดวงจรการพัฒนาและตลอดทั้งรหัส ถูกต้องหรือไม่ ความยืดหยุ่นเป็นประโยชน์หลักหรือไม่? มีวิธีเพิ่มเติมในการ 'เขียนโปรแกรมไปยังส่วนต่อประสาน' หรือไม่? หรือ "การประกาศตัวแปรเป็นอินเตอร์เฟสแทนที่จะใช้อย่างเป็นรูปธรรม" เป็นการนำแนวคิดนี้ไปปฏิบัติเท่านั้น ฉันไม่ได้พูดคุยเกี่ยวกับการเชื่อมต่อสร้าง Java ฉันกำลังพูดถึงหลักการ OO "การเขียนโปรแกรมไปยังส่วนต่อประสานไม่ใช่การใช้งาน" ในหลักการนี้"อินเตอร์เฟซ" ของโลกหมายถึง "supertype" ใด ๆ ของคลาส - อินเทอร์เฟซคลาสนามธรรมหรือซูเปอร์คลาสธรรมดาซึ่งเป็นนามธรรมและคอนกรีตน้อยกว่าคลาสย่อยที่เป็นรูปธรรมมากขึ้น