Golang
Go语言工厂模式
11-19 09:22Go语言工厂模式是创建型设计模式的一种,通过封装对象创建逻辑,解耦调用者与具体实现类的依赖关系。主要分为简单工厂模式、工厂方法模式和抽象工厂模式三种类型。
通过案例来理解Go的工厂模式
比如:一个包中的结构体,首字母大写,在其它包中引入即可直接使用,若结构体首字母小写的,在其它包中引用,会报错:undefined...

如果要在其它包中引用首字母小写的结构体,可以使用工厂模式来解决
使用工厂模式实现跨包创建结构体实例的案例

上面的案例中,虽然 grade 结构体的首字母小写,但其中的字段 Score 首字母为大写,所以在其它包中,只要通过工厂模式得到 grade 结构体,即可使用 Score 字段
若首字母小写的结构体,其中的字段也是小写,其它包中使用工厂模式拿到grade结构体,这时可以正常打印出结构体

但若单独使用这个字段,会报错:undefined...

解决方法:新建一个可以在其它包访问的方法,并返回首字母小写的字段(方法的接受者建议为指针类型)

微信小程序