面向对象程序语言已经是非常普及了。再过去的十几年内,面向对象的代表Java语句一直稳坐编程语言前三名的宝座。面向对象开发的学习,是每一个程序员的必修课。
对于我来说,学完C++和Java之后,看了一堆各种特性,却发现花了不少时间,项目却依然没啥功能。。。由于面向对象的引入,使得编程语言一下子多了好多语法特性,致使开发效率低下。尤其是像我这种学渣,体现得尤为明显。
后来,大家意识到一个问题:编程主要是用来解决一个问题,面向过程最符合人类正常的思维,也是最快的用来解决问题的方式;然而,在工程层面,面向对象的优势更加明显,虽然OO会使得开发效率降低,但是高度的解耦还是能够做到复用和稳定。所以一般大公司会采用Java作为主力开发语言,例如阿里巴巴、IBM,而一般创业小公司,喜欢用便捷的开发语言,例如Python,而我们则是Golang。
习惯性跑题。。。Golang是C语言之父创建的面向过程语言,被誉为“互联网界的C语言”。当然,好的东西还是需要借鉴的,Golang的设计也添加了一些OO的东西,例如接口。
Java中实现接口用interface和implements这两个关键字就能够实现了,而Golang不是面向对象语言,所以写出来的代码总感觉有点别扭,一直都记不住到底要怎么写。后来发现和Java对比一下,很容易理解。
# | Golang | Java | ||||
接口定义 | type Phone interface {…} | interface Phone {…} | ||||
定义实现类 | type iPhone struct {…} | class iPhone implements Phone {…} | ||||
实现接口函数 | func (p *Android) Company() string {…} | String Company() {…} |
structpublic
完整示例test_inte.go。
测试结果: