design patterns in golang

2 3 4 5 6