单例模式

  • 单例创建设计模式将类型的实例化限制为单个对象。
package DesignPatterns

import "sync"

type conf struct {
    Title string
}

var (
    instance conf
    one      sync.Once
)

func New(title string) conf {
    one.Do(func() {
    	instance.Title = title
    })
    return instance
}
  • 使用
func TestNew(t *testing.T) {
    t.Log(New("hello world")) // {hello world}
    t.Log(New("hi"))          // {hello world}
}