ได้คุณสามารถใช้ชื่อหลายอักขระสำหรับตัวแปรชนิดได้ตราบเท่าที่มีความแตกต่างจากชื่อคลาสอย่างชัดเจน
สิ่งนี้แตกต่างจากการประชุมที่ซันแนะนำโดยมีการเปิดตัวยาชื่อสามัญในปี 2547 อย่างไรก็ตาม:
- มีมากกว่าหนึ่งอนุสัญญา
- ชื่อหลายตัวละครที่มีความสอดคล้องกับรูปแบบ Java อื่น ๆ เช่นรูปแบบของ Google สำหรับ Java
- ชื่อที่อ่านได้นั้น (แปลกใจ!) อ่านได้มากขึ้น
การอ่าน
ในบางอินเทอร์เฟซฉันเขียนว่าฉันต้องการตั้งชื่อพารามิเตอร์ประเภททั่วไปที่มีอักขระมากกว่าหนึ่งตัวเพื่อให้โค้ดอ่านง่ายขึ้น
การอ่านเป็นสิ่งที่ดี
เปรียบเทียบ:
public final class EventProducer<L extends IEventListener<E>,E>
implements IEventProducer<L,E> {
ถึง:
public final class EventProducer<LISTENER extends IEventListener<EVENT>,EVENT>
implements IEventProducer<LISTENER, EVENT> {
หรือด้วยแบบแผนหลายอักขระของ Google:
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
สไตล์ Google
คู่มือสไตล์ Google Javaช่วยให้ทั้งชื่อตัวอักษรเดียวและชั้นเหมือนตัวอักษรหลายชื่อที่ลงท้ายด้วย T.
5.2.8 พิมพ์ชื่อตัวแปร
ตัวแปรแต่ละประเภทมีชื่อหนึ่งในสองสไตล์:
จดหมายทุนเดียวตามด้วยเลขเดียว (เช่นE
, T
, X
, T2
)
ชื่อในแบบฟอร์มที่ใช้สำหรับคลาส (ดูหัวข้อ 5.2.2 ชื่อคลาส ) ตามด้วยอักษรตัวใหญ่ T (ตัวอย่าง: RequestT
, FooBarT
)
ประเด็น
“ หากไม่มีหลักการนี้จะเป็นการยากที่จะบอกความแตกต่างระหว่างตัวแปร type กับคลาสหรือชื่ออินเตอร์เฟสธรรมดา” - จากบทช่วยสอนของ Oracle "ประเภททั่วไป"
ชื่ออักขระเดี่ยวไม่ใช่วิธีเดียวในการแยกแยะพารามิเตอร์ประเภทจากชื่อคลาสดังที่เราได้เห็นข้างต้น
ทำไมไม่เพียงแค่บันทึกความหมายของพารามิเตอร์ type ใน JavaDoc?
เป็นความจริงที่@param
องค์ประกอบ JavaDoc สามารถให้คำอธิบายที่ยาวขึ้นได้ แต่ก็เป็นความจริงเช่นกันที่ JavaDocs ไม่จำเป็นต้องมองเห็นได้ (ตัวอย่างเช่นมีเนื้อหาช่วยใน Eclipse ที่แสดงชื่อพารามิเตอร์ชนิด)
ชื่อพารามิเตอร์ชนิดหลายอักขระไม่เป็นไปตามข้อตกลงของ Oracle!
อนุสัญญาดั้งเดิมของ Sun หลายฉบับปฏิบัติตามเกือบทั่วโลกในการเขียนโปรแกรม Java
อย่างไรก็ตามอนุสัญญาเฉพาะนี้ไม่ได้
ทางเลือกที่ดีที่สุดในการประชุมที่แข่งขันกันเป็นเรื่องของความคิดเห็น ผลของการเลือกอนุสัญญาอื่นที่ไม่ใช่ของ Oracle ในกรณีนี้มีน้อย คุณและทีมของคุณสามารถเลือกการประชุมที่ตรงกับความต้องการของคุณมากที่สุด