标签:linuxidc singleton pattern htm www Golang com 2013
在Java中,单例模式的实现主要依靠类中的静态字段。在Go语言中,没有静态类成员,所以我们使用的包访问机制和函数来提供类似的功能。来看下下面的例子:
package singleton
import (
"fmt"
)
type Singleton interface {
SaySomething()
}
type singleton struct {
text string
}
var oneSingleton Singleton
func NewSingleton(text string) Singleton {
if oneSingleton == nil {
oneSingleton = &singleton{
text: text,
}
}
return oneSingleton
}
func (this *singleton) SaySomething() {
fmt.Println(this.text)
}
来测试下:
package main
import (
"Hello/singleton"
)
func main() {
mSingleton, nSingleton := singleton.NewSingleton("hello"), singleton.NewSingleton("hi")
mSingleton.SaySomething()
nSingleton.SaySomething()
}
输出结果:
相关阅读:
Golang通过Thrift框架完美实现跨语言调用 http://www.linuxidc.com/Linux/2013-09/90748.htm
golang里如何将一个struct指针转换成slice http://www.linuxidc.com/Linux/2013-04/83106.htm
Ubuntu 安装Go语言包 http://www.linuxidc.com/Linux/2013-05/85171.htm
《Go语言编程》高清完整版电子书 http://www.linuxidc.com/Linux/2013-05/84709.htm
Go语言并行之美 -- 超越 “Hello World” http://www.linuxidc.com/Linux/2013-05/83697.htm
我为什么喜欢Go语言 http://www.linuxidc.com/Linux/2013-05/84060.htm
标签:linuxidc,singleton,pattern,htm,www,Golang,com,2013 来源: https://www.cnblogs.com/ExMan/p/11454011.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。