服务器之家

服务器之家 > 正文

详解用Go语言实现工厂模式(Golang经典编程案例)

时间:2021-05-26 00:59     来源/作者:cui_yonghua

golang中的struct没有构造函数,一般可以使用工厂模式来解决这个问题。这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。

代码结构如下:分别有main.go和student.go两个文件。

详解用Go语言实现工厂模式(Golang经典编程案例)

在student.go中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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经典编程案例)的文章就介绍到这了,更多相关Go语言工厂模式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/cui_yonghua/article/details/94302824

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部