design patterns for go

2 3 4 5 6