Golang面向对象编程—工厂模式创建实例
Posted Casey321
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang面向对象编程—工厂模式创建实例相关的知识,希望对你有一定的参考价值。
工厂模式
说明
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
原创不易,希望大家多多支持
如果文章对你有帮助,记得一键三连哦!❤️❤️❤️
以上是关于Golang面向对象编程—工厂模式创建实例的主要内容,如果未能解决你的问题,请参考以下文章