อ่านบทความเรื่อง Partially-Implemented Interfaces in Go
เลยเพิ่งรู้ว่า เราสามารถ implement function บางตัวใน interface ได้
ไม่จำเป็นต้น implement ให้ครบทุก ๆ function
เป็นอีกความรู้หนึ่งที่น่าสนใจ
เนื่องจากมีปัญหานี้ตอนทำการ mock หรือ test double บ่อย ๆ

โดยวิธีการง่ายดี คือ การใช้งาน embedded interface นั่นเอง
แสดงว่า ผมอ่านเอกสารไม่ดีเอง หรือ ใช้งานไม่เป็นเอง 555
ตัวอย่างการใช้งานเป็นดังนี้

เริ่มเขียน code แบบที่ไม่รู้เรื่องนี้

หลังจากที่รู้ จะเขียนได้ดังนี้

ทำให้เราทำการ implement เฉพาะ function ที่ต้องการเท่านั้นเอง
ต้องระวังการใช้งานด้วยนะ !!
แต่ถ้ามองอีกมุมคือ การออกแบบ interface มีปัญหาหรือไม่นะ
ทำไม interface หนึ่ง ๆ ต้องมี function เยอะ ๆ ด้วย
ทำไมไม่ออกแบบ interface ที่มีการทำงานเฉพาะเจาะจงลงไปเลย
เป็นสิ่งที่น่าคิดเหมือนกัน

Reference Websites