工廠模式
- 說明
- 引入
- 工廠模式跨包創建實體
說明
Golang的結構體沒有建構式,通常可以使用工廠模式來解決這個問題,
引入
看一個需求:
package main
type Student struce{
Name string
...
}
因為這里的Student的首字母S是大寫的,如果我們想在其它包創建Student的實體,我們只要引入包,直接創建Student結構體的變數(實體),但是問題來了,如果首字母是小寫,該怎么辦?->工廠模式來解決,
工廠模式跨包創建實體
student.go
package model
type student struct{
Name string
Age int
}
func NewStudent(name string,age int) *student{
return &student{
Name : name,
Age : age,
}
}
test.go
package main
import(
"fmt"
"go_code/OOP/model"
)
func main() {
stu := model.NewStudent("Casey",18)
fmt.Println(*stu)
}
如果將student的結構體欄位Name改成name,我們又能正常訪問嗎?
解決方法(類似java中的getter,setter)
student.go
package model
type student struct{
name string
Age int
}
func NewStudent(name string,age int) *student{
return &student{
name : name,
Age : age,
}
}
func (this *student) GetName()string{
return this.name
}
test.go
package main
import(
"fmt"
"go_code/OOP/model"
)
func main() {
stu := model.NewStudent("Casey",18)
fmt.Println(stu.GetName())
}
博主首頁鏈接:https://blog.csdn.net/weixin_44736475
原創不易,希望大家多多支持
如果文章對你有幫助,記得一鍵三連哦!??????
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264462.html
標籤:其他
上一篇:glfw3安裝流程
