开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:Go 接口应用场景的说明】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9699
Go接口应用场景的说明
内容介绍
一、应用场景
二、注意事项和细节
一、应用场景
1、接口(interface)
应用场景介绍
对初学者讲,接口的定义相对好理解。刚刚接触的同学们对语法层面上相对能够接受,但是有的场景是现实生活中的。也有的在编程中的,对于同学们来说可能不太好理解。
理解接口的概念不算太难,难的是不知道什么时候使用接口,下面例举几个应用场景,大家看一下案例:
(1)案例一:
现在要制造轰炸机,武装直升机.专家只需把飞机需要的功能/规格定下来即可,然后让别的人具体实现就可。所以接口很强大
类似于去写一个结构体,方法很多一个程序员做是不好的,所以希望让所有人来参与这个项目,此对需要找到项目经理,让其定义这个接口,程序员再去实现。
此时看一个案例:
Sort 包包里有个方法,此包里有个 data,data 有个 interface,如若想进行排序,只要实现这个接口就好,只要实现,就能实现类型传递
type Intertace 包包如下:
type Interface interface(
// Len 方法返回集合中的元素个数
Len () int
// Less 方法报售索引 i 的元素是否比索引 i 的元素小
Less (1,j-int) bool
// Swap 方法交换索引1和 j 的两个元素
Swap (1,j int)
}
此三种方法,如果实现一种即可实现排序,这个方法很强大
(2)案例二:
有一个项目经理,管理者三位程序员,开发一个软件。为了控制和管理软件,项目经理定义了一个接口,然后由程序员实现。
三个接口定义好后,让程序员 A 完成接口1。程序员 B 实现接口2
程序员 C 实现接口3,这样的好处在于可以控制管理软件的开发进度,偏差不会太大。
二、注意事项和细节
1、interface 类型默认是一个指针,如果没有对 interface 初始化就使用,那么会输出错误
2、空接口 interface{}没有任何方法,所以所有类型都实现了空接口