design patterns in golang

3 4 5 6 7