go语言设计模式