Postingan

Menampilkan postingan dari Juli, 2020

Golang Interface Pattern

Gambar
Today I learn golang interface patterns from this article : https://dzone.com/articles/three-productive-go-patterns-to-put-on-your-radar , one of the interesting section is client-side interface pattern, and I wonder how it would looks for " Caller Side Interface Pattern". In this post I try to visualize and summarize it. Client Side Interface Pattern The idea of client-side interface pattern is to put the interface type on client package. by doing this, we only write interface once for all controllers,  less freedom when writing caller code. package controller import "project/usecase" func New(u usecase.Usecase) *controller { return &controller{ u, } } type controller struct{ u usecase.Usecase } func (c *controller) InsertData() { c.u.InsertDataToDB() } package usecase func New() Usecase { return &usecase{} } type Usecase interface{ InsertDataToDB() } type usecase struct{} func (u *usecase) InsertDataToDB(){ return } Caller Side Interface P