design patterns for go

3 4 5 6 7