ภาษา OO ส่วนใหญ่นำหน้าชื่ออินเตอร์เฟสด้วยตัวพิมพ์ใหญ่ I ทำไม Java ไม่ทำเช่นนี้? อะไรคือเหตุผลที่ไม่ปฏิบัติตามอนุสัญญานี้
เพื่อแสดงให้เห็นถึงสิ่งที่ฉันหมายถึงถ้าฉันต้องการที่จะมีส่วนติดต่อผู้ใช้และการใช้งานของผู้ใช้ฉันมีสองตัวเลือกใน Java:
- Class = ผู้ใช้ส่วนต่อประสาน = UserInterface
- Class = UserImpl, Interface = ผู้ใช้
ที่ไหนในภาษาส่วนใหญ่:
Class = ผู้ใช้ส่วนต่อประสาน = IUser
ตอนนี้คุณอาจยืนยันว่าคุณสามารถเลือกชื่อที่สื่อความหมายได้มากที่สุดสำหรับการใช้งานของผู้ใช้และปัญหาจะหายไป แต่ Java ของการผลักดันวิธี POJO กับสิ่งต่าง ๆ และคอนเทนเนอร์ IOC ส่วนใหญ่ใช้ DynamicProxies อย่างกว้างขวาง สองสิ่งเหล่านี้เข้าด้วยกันหมายความว่าคุณจะมีอินเทอร์เฟซมากมายกับการใช้งาน POJO เดียว
ดังนั้นฉันเดาว่าคำถามของฉันจะลดลงไปที่: "มันคุ้มค่าหรือไม่ที่จะต้องปฏิบัติตามระเบียบการตั้งชื่อส่วนต่อประสานที่กว้างขึ้นโดยเฉพาะอย่างยิ่งในที่ที่ Java Frameworks ดูเหมือนจะมุ่งหน้าไปหรือไม่?"
NetworkInterface
, DialogInterface
ฯลฯ