内容简介:singleton.gosingleton_test.go程序输出如下,
singleton.go
// singleton.go package singleton type singleton struct { count int } var instance *singleton func GetInstance() *singleton { if instance == nil { instance = new(singleton) } return instance } func (s *singleton) AddOne() int { s.count++ return s.count } func (s *singleton) GetCount() int { return s.count }
singleton_test.go
// singleton_test package singleton import ( "testing" ) func TestGetInstance(t *testing.T) { counter1 := GetInstance() if counter1 == nil { t.Error("A new connectin object must have been made") } expectCounter := counter1 currentCount := counter1.AddOne() if currentCount != 1 { t.Errorf("After called for the first time, the count value should be 1 but found: %v", currentCount) } counter2 := GetInstance() if counter2 != expectCounter { t.Error("Singleton instance must not be different") } currentCount = counter2.AddOne() if currentCount != 2 { t.Errorf("After calling twice of AddOne, currentCount should be 2 but found: %v", currentCount) } }
程序输出如下,
image.png
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 重学设计模式——线程安全的观察者模式
- EventBus源码剖析(3) — 线程模式
- 多线程十一 单例模式
- Java多线程核心技术之单例模式与多线程
- Java 多线程(四)—— 单例模式
- Java 多线程设计模式之基础概念
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Book of CSS3
Peter Gasston / No Starch Press / 2011-5-13 / USD 34.95
CSS3 is the technology behind most of the eye-catching visuals on the Web today, but the official documentation can be dry and hard to follow. Luckily, The Book of CSS3 distills the heady technical la......一起来看看 《The Book of CSS3》 这本书的介绍吧!