设计模式 - 抽象工厂模式
设计模式 - 建造者模式

设计模式 - 单例模式

violet posted @ Jul 07, 2020 06:02:08 AM in 笔记 with tags Design Pattern , 225 阅读

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

主要解决:一个全局使用的类频繁地创建与销毁。

何时使用:当您想控制实例数目,节省系统资源的时候。

如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。

关键代码:构造函数是私有的。

 

package main

import (
	"fmt"
	"sync"
)

var once sync.Once

type singleton map[string]string

var (
	instance singleton
)

func New() singleton {
	once.Do(func() {
		instance = make(singleton)
	})
	return instance
}

func main() {
	instance = New()
	instance["test"] = "233"
	fmt.Println(instance)

	instance = New()
	fmt.Println(instance)
}

Result

go run singleton.go
map[test:233]
map[test:233]
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter