Go核心开发学习笔记(廿三) —— 面向对象编程,工厂模式

阅读: 评论:0

Go核心开发学习笔记(廿三) —— 面向对象编程,工厂模式

Go核心开发学习笔记(廿三) —— 面向对象编程,工厂模式

面向对象编程

基本步骤对比python

  1. 声明结构体,确定结构体名称 //确认一个类名称: Class xxx():
  2. 确定结构体的字段 //确认类的属性: def init
  3. 编写结构体方法 //确认类的方法: def xx():

最简单示例:写一个球员结构体,包含name string,gender string,age int,num int,ability float64字段;编写一个方法,调用后返回球员所有的信息

package main
import "fmt"
type player struct {name stringgender stringage introlenum intability int
}func (p *player) callback() string {res := fmt.Sprintf("定义球员信息如下:n姓名:%vn性别:%vn年龄:%dn球衣号码:%dn能力值:%dn",p.der,p.lenum,p.ability) //定义字符串打印的可以传递变量return res
}func main() {var p1 *player = &player{"durant","male",30,35,94}   //后续工程中优秀做法是把结构体指针返还给变量,因为指针传递值很小,效率高res := p1.callback()fmt.Println(*p1)      //由于var是一个指针,所以当查看实例的时候前面会加一个&符,去掉只需要打印*p1取值即可fmt.Println(res)
}

Golang中没有构造函数,使用工厂模式解决问题

一个非main包中定义了一个struct,但是首字母小写,struct字段也是小写,想在main()中调用这个结构体和字段,一般无法完成,选择工厂模式解决。

写一个常规方式无法导入的包:

package utils                //创建一个utils包type students struct {       //这个结构体是小写,无法用于其他包导入     Name stringAge intscore float64            //这个结构体的字段是小写,无法用于其他包导入
}func Student(n string,a int) *students {    //写一个方法,装饰一下,方法本身首字母大写,所以可以被其他包导

本文发布于:2024-02-03 08:07:52,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170691887349744.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23