- 隐藏实现细节
- 保证数据安全(控制变量或方法的访问范围,private)
Go中实现封装:
- 结构体、字段的首字母小写(Java的private)
- 提供一个工厂模式函数,首字母大写(public)
//提供一个首字母大写的Set方法(类似其它语言的public),用于对属性判断并赋值
func (var 结构体类型名)SetXxx(参数列表){
//加入数据验证的业务逻辑
var.Age =参数
}
//提供一个首字母大写的Get方法(类似其它语言的public),用于获取属性的值
func (var 结构体类型名) GetXxx() (返回值列表){
return var.字段;
}
示例:
其他包中创建示例,并对字段赋值: