Factory - 工厂模式 工厂模式在Go中使用的非常广泛,比如常用于数据的读写模块。假设我们需要从某种介质中读取数据,并将更新后的结果保存到该介质中。考虑到以后可能更换为其他类型的介质,为了避免日后更换介质而大面积变更代码,我们就会用到本模式。 实现 1.定义工厂方法所创建对象的接口 假设我们的存储模块只有Read和Write两个功能,我们需要先定义存储器inteface。 1package store 2 3import "io" 4 5type Store interface { 6 Read(string) ([]byte, error) 7 Save(string, []byte) (error) 8} …
阅读更多Singleton - 单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 实现 饿汉式 饿汉式单例是指在方法调用前,实例就已经创建好了。 按照用法使用,可以看到控制台输出10次单例的内存地址是一样的。 1package main 2 3import ( 4 "fmt" 5 "sync" 6 "time" 7) 8 9type ( 10 server struct { 11 port int 12 } 13) 14 15var ( 16 instance = &server{} 17) 18 19func getServerSingleton() *server …
阅读更多