อินเทอร์เฟซกำหนดสัญญาระหว่างคลาสที่ใช้อินเทอร์เฟซและไคลเอนต์ของพวกเขา พวกเขาจะใช้เป็นกลไกที่เป็นนามธรรมเพื่อให้ลูกค้าสามารถจัดการ "สิ่งที่มีพฤติกรรมที่กำหนด"
ดังนั้นคำตอบทั่วไปของคำถาม "ฉันควรสร้างและใช้ส่วนต่อประสานนี้หรือไม่?" คือ: ใช่หากคุณสามารถเชื่อมโยงแนวคิด (หนึ่งเดียว) ที่เกี่ยวข้องกับลูกค้าของคุณได้
ตัวอย่างเช่นComparableเป็นอินเทอร์เฟซที่ดีเพราะมันอธิบายได้ว่าสิ่งต่าง ๆ สามารถเปรียบเทียบได้ด้วยวิธีการอย่างใดอย่างหนึ่งและในฐานะลูกค้าที่ฉันสนใจที่จะจัดการกับวัตถุที่เทียบเคียงได้ (เช่นการเรียงลำดับ) contrario, CoolStuffไม่ใช่ส่วนต่อประสานที่ดีถ้าคุณยอมรับว่าวัตถุ cool ไม่มีพฤติกรรมที่เฉพาะเจาะจง (อันที่จริงแล้วคุณสามารถจินตนาการถึงซอฟต์แวร์ที่จัดการกับวัตถุ cool ได้เพราะมันมีพฤติกรรมทั่วไปเช่นbeCoolวิธี).
ในกรณีของคุณโดยเฉพาะฉันเชื่อว่าส่วนต่อประสานของคุณไม่มีประโยชน์ ใครจะใช้มันอย่างไรและเมื่อไหร่? คุณไม่สามารถสร้างอินเตอร์เฟสสำหรับแต่ละค่าที่ไม่แน่นอน ดังนั้นถามตัวเองว่าอะไรคือคุณสมบัติที่เกี่ยวข้องและน่าสนใจที่อยู่เบื้องหลังวิธีการของคุณ
หากสิ่งที่คุณต้องการคือการจัดการกับวัตถุที่มีค่าไม่แน่นอนที่สามารถเข้าถึงได้ด้วยวิธีการสองสามวิธีให้ดูแนวคิดของ Java bean และวิธีที่คุณสามารถบังคับให้คลาสของคุณใช้ระเบียบแบบแผน