การเขียนโปรแกรมแบบวัตถุที่เน้น (Object-Oriented Programming - OOP) คือการประยุกต์ใช้งานที่สำคัญมากในการพัฒนาซอฟต์แวร์ทุกวันนี้ หนึ่งในแนวคิดหลักของ OOP คือการใช้งาน "Interface" ซึ่งภาษา Golang ก็มีการสนับสนุนแนวคิดนี้ได้อย่างเป็นธรรมชาติและมีประสิทธิภาพ ในบทความนี้ เราจะพาไปดูว่า Interface ใน Golang นั้นทำงานอย่างไร พร้อมตัวอย่างโค้ดให้เข้าใจได้ง่ายยิ่งขึ้น แถมด้วย use case ที่ใช้งานจริงในภาคธุรกิจ
ใน Golang, Interface คือชุดของ method signatures ที่กำหนด “สัญญา” เกี่ยวกับการทำงานของ type หนึ่งๆ ใดๆ ที่ "เป็นไปตาม" interface นั้นต้องมีการกำหนด method ที่ครบทุกตัวตามที่ interface กำหนดไว้ ลักษณะนี้เป็นการใช้ "การแยกส่วนของพฤติกรรม" (behaviour abstraction) ที่ช่วยลดความซับซ้อนของโปรแกรม
ในตัวอย่างข้างต้น, เราได้สร้าง interface ที่ชื่อว่า `Displayer` ที่มี method `Display()` จากนั้นเราสร้าง `User` ที่มี property `Name` และเราก็สร้าง method `Display()` ที่ทำให้ `User` นั้นเป็นไปตาม interface `Displayer`
คุณสามารถใช้ interface เพื่อระบุ arguments ในฟังก์ชันของคุณได้ เช่น:
ในส่วนของฟังก์ชัน `ShowInfo`, เรากำหนดให้มันรับ parameters ที่เป็น interface `Displayer` ซึ่งตรงนี้เราสามารถส่ง type ใดก็ได้ที่เป็นไปตามสัญญาของ interface นั้นๆ เข้ามา
สมมติว่าคุณกำลังพัฒนาโปรแกรมสำหรับระบบจำหน่ายสินค้าออนไลน์ คุณอาจจะมี interface ที่เรียกว่า `Product` ที่เอาไว้บรรยายถึงการจัดส่งสินค้า ถ้าหากว่ามีสินค้าหลายประเภทที่มี method ในการจัดส่งที่ต่างกัน คุณก็สามารถใช้ interface ในการรวมหมวดหมู่สินค้าตามประเภทการจัดส่ง
Interface ใน Golang ได้เปิดโอกาสให้นักพัฒนาสามารถหาจุดที่สามารถนำไปใช้ได้แบบที่ไม่ต้องทำการเปลี่ยนแปลงโค้ดที่มีอยู่ทั้งหมด แต่สามารถแยกและจัดการกับระบบย่อยต่างๆให้ดียิ่งขึ้น นี่คือการใช้ประโยชน์จาก OOP และ interface ได้อย่างเต็มที่ และหากคุณอยากจะเรียนรู้มากยิ่งขึ้นเกี่ยวกับการเขียนโค้ดใน Golang หรือ ภาษาโปรแกรมอื่นๆ ห้ามพลาดที่จะเข้ามาศึกษากับเราที่ EPT (Expert-Programming-Tutor) ที่นี่คุณจะได้พบกับวิธีการเรียนรู้ที่สดใส ตรงไปตรงมา พร้อมทั้งการวิเคราะห์และการใช้งานที่ตรงกับปัญหาในโลกจริงได้อย่างเหมาะสม ช่วยให้คุณพร้อมก้าวเข้าสู่โลกของการพัฒนาซอฟท์แวร์ได้อย่างมั่นคง!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: golang interface object-oriented_programming oop method_signatures type behavior_abstraction function arguments use_case product shipper clothes electronics code_example
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ 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