工厂模式
2022/3/3 6:15:08
本文主要是介绍工厂模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景:当结构体名的首字母为小写时,这时这个结构体只能在本包使用,而不能被其他包使用,
但是在别的包中又希望可以使用这个结构体。由于go语言中没有构造函数,可以使用工厂模式来解决这个问题。
举例:model包中student结构体首字母为小写,main包中需使用student结构体
student.go
package model type student struct { Name string Score float32 } func NewStudent(name string, score float32) *student { return &student{ Name: name, Score: score, } }
main.go
package main import ( "fmt" "model" ) func main() { student := model.NewStudent("小明", 90.5) fmt.Println("student=", *student) }
当student结构体中Score字段首字母修改为小写score时,如何在main包中重新给Score字段赋值
student.go
package model type student struct { Name string score float32 } func NewStudent(name string, score float32) *student { return &student{ Name: name, score: score, } } func (stu *student) GetScore() float32 { return stu.score } func (stu *student) SetScore(s float32) { stu.score = s }
main.go
package main import ( "fmt" "model" ) func main() { student := model.NewStudent("小明", 90.5) fmt.Println("student=", *student) student.SetScore(100) fmt.Println("student.Name=", student.Name, "student.score=", student.GetScore()) }
这篇关于工厂模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南