# บทความ: การใช้ Interface ในการเขียนโปรแกรมแบบวัตถุ (OOP) ด้วยภาษา C ด้วยวิธีที่เข้าใจง่าย
การเขียนโปรแกรมแบบวัตถุ (Object-Oriented Programming - OOP) เป็นหนึ่งในพาราไดม์ที่ทรงพลังที่สุดในการพัฒนาซอฟต์แวร์ แต่น่าเสียดายที่ภาษา C นั้นไม่มีความสามารถในเรื่องนี้โดยตรง เพราะมันถูกออกแบบมาเป็นภาษาโปรแกรมเชิงขั้นตอน (Procedural Programming) แต่ก็ไม่ใช่ปัญหา เพราะเราสามารถที่จะจำลองแนวคิดของ OOP ในภาษา C ได้ด้วยการใช้ 'interface' แบบจำลองเพื่อสร้างการโต้ตอบระหว่างวัตถุ (Object) และการนำรหัสไปใช้ใหม่ (Code Reusability) ได้
Interface ในทางการเขียนโปรแกรม OOP คือแนวคิดที่ใช้กำหนดเทมเพลตที่ว่าวัตถุควรจะมีฟังก์ชันการทำงาน (methods) แบบใดบ้าง โดยไม่จำเป็นต้องกำหนดวิธีการทำงานจริงๆ (implementation) แต่เพียงแค่กำหนดสัญญาที่วัตถุนั้นๆ จะต้องปฏิบัติตาม
ในการพัฒนาซอฟต์แวร์หลายๆ โปรเจกต์นั้นมีความต้องการที่จะแยกการออกแบบ (design) ออกจากการใช้งานจริง (implementation) เพื่อที่จะอนุพันธ์ (extend) หรือแก้ไขโค้ดได้ง่ายขึ้น และเพื่อให้โค้ดที่เขียนนั้นสามารถนำไปใช้ได้กับวัตถุประเภทต่างๆ โดยไม่ต้องเขียนซ้ำๆ นี่คือที่มาของความสำคัญของ interface
เนื่องจากภาษา C ไม่มี syntax ที่รองรับ OOP อย่างเต็มรูปแบบ เราต้องใช้สิ่งที่เรียกว่า "Abstract Data Types" (ADT) และ "Function Pointers" ในการสร้าง interface ที่ไว้ใช้กำหนดวิธีการทำงานที่แตกต่างกันของวัตถุ
ภายใต้ข้อจำกัดของภาษา C, การใช้งาน interfaces สามารถเป็นไปได้โดยการใช้ตัวชี้ฟังก์ชัน (function pointers) เพื่อเรียกใช้ฟังก์ชันจากโค้ดอื่นโดยไม่จำเป็นต้องรู้จักฟังก์ชันนั้นๆ อย่างละเอียด
สมมุติเรามี interface ที่กำหนดการทำงานสำหรับ "การพิมพ์" (Printable) และคุณสามารถใช้ interface นี้ได้กับการพิมพ์ข้อความที่แตกต่างกัน เช่น บนหน้าจอ, ในไฟล์ หรือแม้แต่การส่งผ่านเครือข่าย
ในโปรเจกต์การพัฒนาซอฟต์แวร์ที่มีวัตถุคล้ายกันหลายประเภทที่ต้องการทำงานบางอย่างที่เหมือนกัน การใช้ interface อาจช่วยลดความซับซ้อนและจำนวนของโค้ดซ้ำ ตัวอย่างเช่น ในระบบขายออนไลน์ ผู้ขายสินค้าอาจจะส่งสินค้าไปยังลูกค้าผ่านทางหลายวิธี เช่น ทางไปรษณีย์, บริษัทขนส่งเอกชน, หรือการส่งแบบอิเล็กทรอนิกส์ ถ้าเราใช้ interface ที่ชื่อว่า "DeliveryMethod" ที่กำหนดว่าทุกวิธีการส่งสินค้าควรมี function ที่ชื่อว่า "deliver" เราสามารถเขียนโค้ดในการจัดการสินค้าให้สามารถนำไปใช้กับวิธีการส่งสินค้าต่างๆ ได้อย่างหลากหลายโดยไม่ต้องเขียนโค้ดใหม่หรือเปลี่ยนโค้ดเดิมเลย
การใช้ interface ในลักษณะนี้เปิดโอกาสให้เราสามารถ "พัฒนาแอปพลิเคชันต่อไปได้โดยไม่ได้ทำให้ระบบมีความซับซ้อนเพิ่มขึ้น" และนี่คือความงดงามของการโปรแกรมเชิงวัตถุ
ในยุคปัจจุบันที่เทคโนโลยีพัฒนาไปอย่างรวดเร็ว การรู้จักและเข้าใจมาตรฐานการเขียนโปรแกรมมีความสำคัญเพิ่มขึ้นเรื่อยๆ ซึ่งการเรียนรู้การเขียนโปรแกรมแบบวัตถุในภาษา C ณ Expert-Programming-Tutor (EPT) ของเรา จะช่วยให้นักเรียนมีพื้นฐานที่มั่นคง เพื่อที่จะพัฒนาความสามารถในการเขียนโปรแกรมในภาษาอื่นๆ ได้ง่ายขึ้น พร้อมทั้งการประยุกต์ใช้ในงานจริงของพวกเขาในอนาคต
ความรู้เกี่ยวกับ interface นับเป็นจุดเริ่มต้นของการสร้างโปรแกรมที่มีคุณภาพและทำงานได้อย่างเหมาะสม ดังนั้นหากคุณสนใจที่จะพัฒนาทักษะการเขียนโปรแกรมของคุณให้เกิดผลสัมฤทธิ์อย่างแท้จริง มาร่วมเรียนรู้กับเราที่ EPT และพัฒนาศักยภาพในทางการเป็นนักพัฒนาซอฟต์แวร์ระดับมืออาชีพกันเถอะ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: interface oop c_programming function_pointers abstract_data_types code_reusability object-oriented_programming function_implementation code_structure software_development programming_paradigm adt c_language printable delivery_method
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM