工厂模式
一、说明
Golang 的结构体没有构造函数,通常可以使用工厂模式来解决这个问题
二、需求
三、代码
通过方法调用内部属性==
package model
type student struct{
Name string
Score float64
}
func NewStudent(n string,s float64)*student{
return &student{
Name:n,
Score:s,
}
}
package main
import(
"fmt"
"go_code/project00/model"
)
func main(){
var stu=model.NewStudent("tom",88.8)
fmt.Println(*stu)
fmt.Println("name=",stu.Name,"score=",stu.Score)
}
四、思考
如果 model 包的 student 的结构体的字段 Score 改成 score,我们还能正常访问吗?又应该如何解决这个问题呢?
package model
type student struct{
Name string
score float64
}
func NewStudent(n string,s float64)*student{
return &student{
Name:n,
score:s,
}
}
func(s *student)GetScore()float64{
return s.score
}
fmt.Println("name=",stu.Name,"score=",stu.GetScore())
总结
本文仅仅简单介绍了Golang工厂模式,此篇是通过b站尚硅谷Golang视频的学习做的笔记。