สวัสดีครับ ผมเจออน
วันนี้เราจะมาดูกันว่า JCF คืออะไร และมีคุณสมบัติอย่างไรบ้าง
JCF คืออะไร?
JCF ย่อมาจาก Java Collections Framework ซึ่งหมายถึงกลุ่มคลาสที่ให้วิธีมาตรฐานในการจัดการข้อมูลจำนวนมากอย่างง่ายและมีประสิทธิภาพ กล่าวคือ เป็นการจัดโครงสร้างข้อมูล (Data Structure) และอัลกอริทึม (Algorithm) ที่ใช้ในการประมวลผลข้อมูล และนำไปใช้เป็นคลาส โดยที่ Collections หมายถึงชุดข้อมูลหรือกลุ่มข้อมูล
Framework กับ Library
เฟรมเวิร์กสามารถอธิบายได้ว่าเป็น 'ชุดของคลาสและอินเทอร์เฟซที่ทำงานร่วมกันเพื่อแก้ปัญหาเฉพาะด้านของซอฟต์แวร์' และเป็นซอฟต์แวร์ที่ยังไม่สมบูรณ์ ผู้พัฒนาจำเป็นต้องเติมเต็มส่วนที่ขาดหายไป ในทางกลับกัน ไลบรารีเป็นเพียงชุดของเครื่องมือที่สามารถนำมาใช้ได้
หากจะอธิบายความแตกต่างของทั้งสองอย่างให้ละเอียดขึ้น เฟรมเวิร์กจะควบคุมกระบวนการทำงานโดยรวม และผู้ใช้จะเขียนโค้ดเพิ่มเติมเข้าไปในเฟรมเวิร์ก ส่วนไลบรารี ผู้ใช้จะเป็นผู้ควบคุมกระบวนการทำงานโดยรวม และนำไลบรารีมาใช้งาน
ที่มาของการนำ JCF มาใช้
ก่อนที่จะมีการนำ JCF มาใช้ วิธีการมาตรฐานในการจัดกลุ่ม (Collection) วัตถุในภาษาจาวาคือ Arrays, Vectors และ Hashtables ซึ่ง Collection เหล่านี้ไม่มีอินเทอร์เฟซร่วมกัน ดังนั้น แม้ว่าวัตถุประสงค์ในการใช้ Collection เหล่านี้จะเหมือนกัน แต่ก็จำเป็นต้องกำหนดนิยามแยกกัน นอกจากนี้ แต่ละ Collection ยังมีวิธีการ (Method) ไวยากรณ์ และตัวสร้าง (Constructor) ที่แตกต่างกัน ทำให้ผู้พัฒนาสับสนในการใช้งาน
ดังตัวอย่างโค้ดข้างต้น แม้ว่าวัตถุประสงค์จะเหมือนกันคือการเพิ่มองค์ประกอบและค้นหาองค์ประกอบเพื่อแสดงผล แต่ไวยากรณ์ที่ใช้ก็แตกต่างกัน ตัวอย่างเช่น ในการเพิ่มองค์ประกอบ เวกเตอร์ใช้ addElement() ในขณะที่ Hashtable ใช้ put()
ดังนั้น ผู้พัฒนาภาษาจาวาจึงได้ออกแบบอินเทอร์เฟซร่วมกันเพื่อแก้ปัญหานี้ และนั่นก็คือ Java Collections Framework ที่เราจะมาแนะนำในวันนี้ โปรดทราบว่า หลังจากที่มีการนำ JCF มาใช้ Vector และ Hashtabls กลายเป็นคลาสแบบเก่า (Legacy Class) และไม่ค่อยมีการใช้งานในปัจจุบันแล้ว
ข้อดีของ JCF
(1) สามารถนำโค้ดกลับมาใช้ซ้ำได้ง่าย
(2) ให้การใช้งานโครงสร้างข้อมูลและอัลกอริทึมที่มีประสิทธิภาพสูง ช่วยเพิ่มประสิทธิภาพและคุณภาพของโปรแกรม
(3) ให้ความสามารถในการใช้งานร่วมกันระหว่าง API ที่ไม่เกี่ยวข้องกัน
(4) ลดเวลาในการเรียนรู้และออกแบบ API ใหม่
(5) ส่งเสริมการนำซอฟต์แวร์กลับมาใช้ซ้ำ เนื่องจากโครงสร้างข้อมูลใหม่ที่ใช้ JCF สามารถนำกลับมาใช้ซ้ำได้ และด้วยเหตุผลเดียวกันนี้เอง ทำให้สามารถสร้างอัลกอริทึมใหม่โดยใช้วัตถุที่ใช้ JCF
สรุป
จนถึงตอนนี้ เราได้เรียนรู้ความหมายของ JCF รวมถึงเหตุผลในการนำมาใช้ และข้อดีต่างๆ ของ JCF แล้ว
ในครั้งต่อไป เราจะมาดูโครงสร้างแบบลำดับชั้นของ JCF กัน
ความคิดเห็น0