码迷,mamicode.com
首页 > 编程语言 > 详细

Go语言中的单例模式

时间:2018-06-14 21:04:18      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:ring   结果   print   tin   sync   AC   printf   tmp   syn   

单例模式

使用单例的目的是为了保证在整个系统中存在唯一的实例

package main

import (
        "fmt"
        "sync"
)

type IntAndString struct {
        num int32
        str string
}

var m *IntAndString

var once sync.Once

func GetInstance() *IntAndString {
        once.Do(func() {
        m = &IntAndString{num:1, str:"fdjkslf"}
        })
        return m
}

func (m *IntAndString) String() {
        fmt.Printf("int %v, string %v\n", m.num, m.str)
}

func main() {
        tmp := GetInstance()
        tmp.String()
        tmp.str = "hello"
        tmp1 :=  GetInstance()
        tmp1.String()
        tmp.String()
}

运行结果

int 1, string fdjkslf
int 1, string hello
int 1, string hello

Go语言中的单例模式

标签:ring   结果   print   tin   sync   AC   printf   tmp   syn   

原文地址:http://blog.51cto.com/12880687/2129472

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!