七叶笔记 » golang编程 » golang2021面向对象(25)工厂模式与构造函数

golang2021面向对象(25)工厂模式与构造函数

说明

 

Golang 的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。

 

        看一个需求 一个结构体的声明是这样的: package model

type Student struct { Name string…

}

因为这里的 Student 的首字母 S 是大写的,如果我们想在其它包创建 Student 的实例(比如 main 包), 引入 model 包后,就可以直接创建 Student 结构体的变量(实例)。但是问题来了,如果首字母是小写的, 比如 是 type student struct {….} 就不不行了,怎么办—> 工厂模式来解决.

 

 

        工厂模式来解决问题

Ø        使用工厂模式实现跨包创建结构体实例(变量)的案例:

如果 model 包的 结构体变量首字母大写,引入后,直接使用, 没有问题

 

 

 

如果 model 包的 结构体变量首字母小写,引入后,不能直接使用, 可以工厂模式解决, 看老师演 示, 代码:

student.go

 

main.go

 

 

 

    思考题

同学们思考一下,如果 model 包的 student 的结构体的字段 Score 改成 score,我们还能正常访问 吗?又应该如何解决这个问题呢?[老师给出思路,学员自己完成]

Ø        解决方法如下:

 

相关文章