# Generics คืออะไร? อธิบายแบบง่ายที่สุด แบบเด็ก 8 ขวบก็เข้าใจ ในทางเขียนโปรแกรมมีประโยชน์อย่างไร พร้อมยกตัวอย่างแบบง่ายที่สุด
การเขียนโปรแกรมนั้นเหมือนกับการสร้างกล่องของขวัญที่เต็มไปด้วยของเล่น โดยแต่ละกล่องมีรูปร่างและขนาดที่ต่างกันไป แต่บางครั้งเราก็อยากที่จะใช้กล่องเดียวกันไปเรื่อยๆ โดยที่ไม่สนว่าจะใส่ของเล่นชิ้นไหนเข้าไป เพราะฉะนั้น Generics ในโลกของการเขียนโปรแกรมก็เหมือนกับกล่องของขวัญที่สามารถปรับแต่งขนาดได้ตามที่เราต้องการ เพื่อให้ของเล่นชิ้นไหนก็ตามสามารถใส่เข้าไปได้พอดี และเวลาเราอยากเอาของเล่นชิ้นนั้นออกมา ก็สามารถรู้ได้ทันทีว่าเป็นชิ้นไหน.
ในทางเทคนิคของการเขียนโปรแกรม, Generics คือความสามารถของภาษาโปรแกรมที่ช่วยให้เราสามารถสร้างคลาสหรือฟังก์ชันที่รองรับประเภทของข้อมูลต่างๆ (data type) ได้อย่างที่เราไม่ต้องบอกเจาะจงว่าประเภทข้อมูลนั้นคืออะไรก่อนหน้านี้. นั่นหมายความว่า ใช้รหัสเดียวกันอย่างเฉพาะเจาะจงเพื่อจัดการกับข้อมูลประเภทต่างๆได้.
ประโยชน์หลักๆของ Generics คือ:
1. การใช้รหัสน้อยลง (Code Reusability): เราสามารถใช้โค้ดเดียวกันได้กับประเภทของข้อมูลที่ต่างกัน, ยกตัวอย่างเช่น หากเราสร้างกล่องของขวัญ (container) หนึ่งกล่องที่สามารถใส่ของเล่นทุกประเภทได้, เราจะไม่ต้องสร้างกล่องใหม่สำหรับของเล่นแต่ละชนิด. 2. ความปลอดภัยของข้อมูล (Type Safety): เราสามารถรู้ได้ว่าข้อมูลที่เราได้รับออกมาจากกล่องของขวัญนั้นเป็นชนิดใด, สามารถหลีกเลี่ยงการนำข้อมูลที่ผิดประเภทมาใช้ได้. 3. การทดสอบที่ง่ายขึ้น (Easier Testing): เป็นเรื่องง่ายที่จะทดสอบระบบที่ใช้ Generics เพราะโค้ดที่ถูกเขียนครั้งเดียวสามารถทำงานกับข้อมูลหลากหลายประเภทได้.
จะเป็นยังไงถ้าเราอยากสร้างฟังก์ชันที่สามารถใช้ได้กับข้อมูลแบบต่างๆ เช่น หมายเลข (เช่น 1, 2, 3) หรือ ตัวอักษร (เช่น ‘a’, ‘b’ ‘c’)?
ถ้าเราไม่ใช้ Generics อาจต้องเขียนฟังก์ชันหลายๆ ฟังก์ชันที่ทำงานเหมือนกันแต่สำหรับการทำงานกับข้อมูลต่างประเภท เช่น:
void printNumberList(List list) {
for (Integer element : list) {
System.out.println(element);
}
}
void printStringList(List list) {
for (String element : list) {
System.out.println(element);
}
}
แต่ถ้าเราใช้ Generics เราสามารถเขียนเพียงฟังก์ชันเดียวที่สามารถทำงานกับทุกประเภทข้อมูลได้เช่น:
void printList(List list) {
for (T element : list) {
System.out.println(element);
}
}
ในตัวอย่างข้างต้น, `
การเรียนรู้เกี่ยวกับ Generics เป็นหนึ่งในก้าวแรกสำหรับการเป็นโปรแกรมเมอร์ที่แข็งแกร่ง เพราะมันช่วยให้เรารู้จักคิดและรับมือกับปัญหาการเขียนโค้ดที่ซับซ้อนได้ดียิ่งขึ้น และในการเป็นโปรแกรมเมอร์ที่ดี การมีความเข้าใจที่ดีเกี่ยวกับเครื่องมือต่างๆ ที่ทำให้การพัฒนาซอฟต์แวร์มีคุณภาพ คือก้าวสำคัญในการสร้างผลงานที่ดีและมีประสิทธิภาพ.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: generics programming code_reusability type_safety easier_testing type_parameter data_types java functions communication development code_complexity software_quality
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com