Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Go :: ว่าด้วยเรื่อง partial implement ของ interface

$
0
0

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

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

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

[gist id="cb6cdfab7cbf274e6dfdf1b3bdf741e3" file="main_before.go"]

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

[gist id="cb6cdfab7cbf274e6dfdf1b3bdf741e3" file="main_after.go"]

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

Reference Websites


Viewing all articles
Browse latest Browse all 1997

Trending Articles