Examples of design patterns in Go