Golang Design Pattern Practice