Go ไม่มี class และ object แต่ทำไมถึงมี Method และ Interface

Lego_Color_Bricks

The obvious example is the way interfaces give us the composition of components. It doesn’t matter what that thing is, if it implements method M I can just drop it in here. – Rob Pike ( Less is exponentially more )

 

Go เป็น procedure language ที่เราสร้าง Type ใหม่เองได้ และ สร้าง method ให้เจาะจงแต่ละ Type ได้ แบบที่เคยเขียนไว้คราวก่อน “Go ไม่มี class และ object แต่ทำไมถึงมี Method

 

ทีนี้เหตุที่ Go สร้าง Interface Type ขึ้นมาอีกเพราะต้องการกลไกการทำงานแบบ dynamic dispatch method นั่นคือสามารถเรียกใช้งาน method ของ Type ต่างๆผ่าน Type Interface ได้ ถ้า Type นั้นทำการ implement Interface ตัวอย่างพี่รูฟเคยเขียนไว้แล้วที่นี่ Interface ใน Go

 

Interface ทำให้ Go สามารถประกอบการทำงานขององค์ประกอบย่อยต่างๆเข้าด้วยกันได้ง่ายขึ้น ทดสอบการทำงานได้ง่ายขึ้น เพราะเราสามารถปรับเปลี่ยนชิ้นส่วนที่ทดสอบยาก ออกไป โดยสร้าง Type ใหม่ขึ้นมาให้ implement interface ที่ต้องการแล้วเปลี่ยนให้ค่าที่เราจะทดสอบได้