Data Access Objects คืออะไร

ในการเขียนโปรแกรมคอมพิวเตอร์ data access objects (DAO) เป็นเทคนิคการออกแบบที่สร้างเลเยอร์โมดูลเพื่อจัดการการเข้าถึงข้อมูลทั้งหมดสำหรับโปรแกรมซอฟต์แวร์ เลเยอร์นี้มีหน้าที่ในการอ่านและเขียนข้อมูลไปยังฐานข้อมูลหรือระบบไฟล์ภายนอก ในการออกแบบซอฟต์แวร์มีหลายวิธีในการอ่านและเขียนข้อมูลไปยังฐานข้อมูล สิ่งนี้อาจทำให้รหัสซอฟต์แวร์เลอะเทอะเนื่องจากนักพัฒนาอาจใช้หลายวิธีในการดำเนินการเข้าถึงข้อมูลเดียวกัน ประโยชน์หลักอย่างหนึ่งของการใช้ data access objects คือความสามารถในการสร้างมาตรฐานการเข้าถึงข้อมูลสำหรับโปรแกรมซอฟต์แวร์ การออกแบบ DAO ช่วยให้มั่นใจได้ว่าการเข้าถึงฐานข้อมูลทั้งหมดจะดำเนินการในลักษณะเดียวกันซึ่งทำให้ซอฟต์แวร์ดีขึ้น

วัตถุการเข้าถึงข้อมูลถูกนำมาใช้เป็นครั้งแรกในเชิงวิชาการในรูปแบบการเขียนโปรแกรมวัตถุ วิธีการสถาปัตยกรรมนี้ต้องการซอฟต์แวร์นั้นถูกสร้างขึ้นในโมดูลเฉพาะด้วยวัตถุประสงค์เฉพาะ DAO เป็นโมดูลซอฟต์แวร์ที่มีความรับผิดชอบในการดึงและแก้ไขข้อมูลทั้งหมดจากอุปกรณ์เก็บข้อมูลใด ๆ

เทคนิคการใช้ data access objects ไม่ซ้ำกันกับภาษาการเขียนโปรแกรมเฉพาะ Microsoft MS Access เปิดตัววิธีการนี้เป็นครั้งแรก แต่ปัจจุบันมีให้บริการในภาษาการเขียนโปรแกรมที่ทันสมัยที่สุด ถือว่าเป็นแนวปฏิบัติที่ดีที่สุดในการรวมการเข้าถึงข้อมูลไว้ที่ส่วนกลางเพราะจะทำให้แอพพลิเคชั่นซอฟต์แวร์มีความยืดหยุ่น เทคนิคนี้สามารถประหยัดเวลาในการพัฒนาอันมีค่าได้เนื่องจากจะสร้างโมดูลที่ใช้ซ้ำได้สำหรับฐานข้อมูล

ตัวอย่างหนึ่งของ data access objects ในทางปฏิบัติคือการแสดงผลลัพธ์ทีละหน้าซึ่งมักพบในเว็บเบราว์เซอร์ เมื่อหน้าแรกของผลลัพธ์ปรากฏขึ้นหลังการค้นหาโดยทั่วไปหน้าจอจะอนุญาตให้ผู้ใช้เลือกหน้าถัดไปของข้อมูล สิ่งนี้ใช้รูปแบบวัตถุการเข้าถึงข้อมูลซึ่งอนุญาตให้ผู้ใช้เลื่อนไปข้างหน้าและย้อนกลับผ่านชุดข้อมูล

เฟรมเวิร์กซอฟต์แวร์จำนวนมากได้นำวัตถุการเข้าถึงข้อมูลภายในเครื่องมือซอฟต์แวร์มาใช้ ตัวอย่างบางตัวอย่าง ได้แก่ การจำศีลฤดูใบไม้ผลิและวัตถุข้อมูล java (JDO) เฟรมเวิร์กเหล่านี้มีประโยชน์สำหรับนักพัฒนาซอฟต์แวร์เพราะพวกเขาได้ห่อหุ้มรูปแบบ DAO ไว้ภายในกรอบทำให้มันถูกซ่อนจากนักพัฒนา

การใช้ data access objects สามารถประหยัดเวลาด้วยการทดสอบและการปรับใช้รหัสซอฟต์แวร์ โมดูลการเข้ารหัสเดียวรับผิดชอบการเข้าถึงข้อมูลสำหรับแอปพลิเคชันทั้งหมด ทำให้การทดสอบง่ายขึ้นเนื่องจากโมดูลหนึ่งสามารถตรวจสอบจุดเชื่อมต่อข้อมูลหลายจุดของซอฟต์แวร์ได้