Skip to main content

ฟังก์ชั่นเสมือนจริงคืออะไร?

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

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

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

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

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