您现在的位置是:网站首页> 编程资料编程资料
详解用Go语言实现工厂模式(Golang经典编程案例)_Golang_
2023-05-26
427人已围观
简介 详解用Go语言实现工厂模式(Golang经典编程案例)_Golang_
golang中的struct没有构造函数,一般可以使用工厂模式来解决这个问题。这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。
代码结构如下:分别有main.go和student.go两个文件。

在student.go中:
package model //定义一个结构体 type student struct{ Name string score float64 } //因为student结构体首字母是小写,因此是只能在model使用 //我们通过工厂模式来解决r func NewStudent(n string, s float64) *student { return &student{ Name : n, score : s, } } //如果score字段首字母小写,则,在其它包不可以直接方法,我们可以提供一个方法 func (s *student) GetScore() float64{ return s.score //ok } 在main.go中:
package main import ( "fmt" "factory/model" ) func main() { //创建要给Student实例 // var stu = model.Student{ // Name :"tom", // Score : 78.9, // } //定student结构体是首字母小写,我们可以通过工厂模式来解决 var stu = model.NewStudent("tom~", 98.8) fmt.Println(*stu) //&{....} fmt.Println("name=", stu.Name, " score=", stu.GetScore()) } 执行结果如下图所示:

到此这篇关于详解用Go语言实现工厂模式(Golang经典编程案例)的文章就介绍到这了,更多相关Go语言工厂模式内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- 详解Golang实现请求限流的几种办法_Golang_
- golang简易令牌桶算法实现代码_Golang_
- 一文搞懂Golang文件操作增删改查功能(基础篇)_Golang_
- Go语言reflect.TypeOf()和reflect.Type通过反射获取类型信息_Golang_
- 为什么不建议在go项目中使用init()_Golang_
- Golang二维切片初始化的实现_Golang_
- go语言实现简易比特币系统之交易签名及校验功能_Golang_
- go语言map与string的相互转换的实现_Golang_
- go语言实现简易比特币系统钱包的原理解析_Golang_
- Golang 语言高效使用字符串的方法_Golang_
