"สวัสดี Amigo ฉันเอง ฉันขอเสนออีกมุมมองหนึ่งเกี่ยวกับส่วนต่อประสาน คุณจะเห็นว่าส่วนใหญ่แล้วคลาสจะเป็นแบบจำลองของวัตถุหนึ่งๆ ในทางกลับกัน อินเทอร์เฟซเป็นเหมือนความสามารถของวัตถุหรือ บทบาทมากกว่าตัววัตถุเอง"

ตัวอย่างเช่น สิ่งต่างๆ เช่น รถยนต์ จักรยาน มอเตอร์ไซค์ และล้อ จะแสดงเป็นคลาสและวัตถุได้ดีที่สุด แต่ความสามารถของพวกเขา เช่น «ฉันเคลื่อนไหวได้» «ฉันบรรทุกคนได้» และ «ฉันจอดรถได้» นั้นแสดงได้ดีกว่าในอินเทอร์เฟซ ลองดูตัวอย่างนี้:
รหัสจาวา | คำอธิบาย |
---|---|
|
สอดคล้องกับความสามารถในการเคลื่อนไหว |
|
สอดคล้องกับความสามารถในการเคลื่อนไหว |
|
สอดคล้องกับความสามารถในการบรรทุกสินค้า |
|
คลาส «ล้อ» มีความสามารถในการเคลื่อนที่ |
|
คลาส «รถยนต์» มีความสามารถในการเคลื่อนย้าย ขับเคลื่อนด้วยคน และบรรทุกสินค้า |
|
คลาส «สเก็ตบอร์ด» มีความสามารถในการเคลื่อนที่และถูกควบคุมโดยบุคคล |
อินเทอร์เฟซทำให้ชีวิตของโปรแกรมเมอร์ง่ายขึ้นอย่างมาก โปรแกรมมักจะมีอ็อบเจกต์นับพัน คลาสหลายร้อยคลาส และอินเทอร์เฟซ (บทบาท) เพียงไม่กี่โหล มีบทบาทน้อย แต่สามารถรวมกันได้หลายวิธี (คลาส)
ประเด็นทั้งหมดคือคุณไม่จำเป็นต้องเขียนโค้ดที่กำหนดการโต้ตอบกับคลาสอื่นๆ ทุกคลาส สิ่งที่คุณต้องทำคือโต้ตอบกับบทบาท (อินเทอร์เฟซ)
ลองนึกภาพว่าคุณเป็นผู้สร้างหุ่นยนต์ คุณมีหุ่นยนต์ย่อยหลายสิบตัวและแต่ละตัวสามารถมีทักษะที่หลากหลาย สมมติว่าคุณต้องสร้างกำแพงให้เสร็จโดยด่วน คุณเพียงแค่นำหุ่นยนต์ทั้งหมดที่มีความสามารถในการ "สร้าง" และบอกให้พวกเขาสร้างกำแพง คุณไม่สนใจว่าหุ่นยนต์ตัวไหนทำ ให้มันเป็นหุ่นยนต์รดน้ำ ถ้ามันรู้วิธีสร้างก็ให้มันสร้างนี่คือลักษณะของโค้ด:
รหัสจาวา | คำอธิบาย |
---|---|
|
ความสามารถในการ «สร้างกำแพง». เข้าใจคำสั่ง «สร้างกำแพง» (มีวิธีการที่เหมาะสม) |
|
หุ่นยนต์ที่มีความสามารถ/ทักษะนี้
การรดน้ำไม่สามารถสร้างกำแพงได้ (ไม่ได้ใช้อินเทอร์เฟซ WallBuilder) |
|
เราจะออกคำสั่งให้สร้างกำแพงได้อย่างไร? |
"น่าสนใจมาก ฉันไม่เคยคิดฝันมาก่อนว่าอินเทอร์เฟซจะเป็นหัวข้อที่น่าสนใจขนาดนี้"
"แล้วบางส่วน! เมื่อรวมกับความหลากหลายแล้วมันช่างเหลือเชื่อ"
GO TO FULL VERSION