|
|
51CTO旗下网站
|
|
移动端

9.1 接口

《Go语言编程入门与实战技巧》第9章接口与反射,本章需要注意设计类型时确认类型的本质是原始的还是非原始的。接口是声明了一组行为并支持多态的类型,嵌入类型提供了扩展类型的能力,而无须使用继承。本节为大家介绍接口。

作者:黄靖钧来源:电子工业出版社|2018-09-23 09:18

第9章 接口与反射

接口在Go语言中有着至关重要的地位,如果说goroutine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道极为亮丽的风景,那么接口是Go语言整个类型系统的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。

9.1  接口

在编程哲学上,Go语言站在了改革的一方,而不是改良的一方。这么说并不是因为Go语言有goroutine和channel,而是因为Go语言的类型系统及Go语言的接口。Go语言接口与传统编程语言的接口概念完全不一样,Go语言的编程哲学因为有接口而趋近完美。

Go语言的接口不只是接口,本章很大一部分都会介绍Go语言的接口特性,Go语言的接口并不是其他语言(C++、Java、C#等)中所提供的接口概念。

在Go语言出现之前,接口主要作为不同组件之间的契约存在。对契约的实现是强制的,开发者必须声明实现该接口。为了实现一个接口,你需要从该接口继承。即使另外有一个接口IFoo2实现了与IFoo完全一样的接口方法,甚至名字也叫IFoo,只不过两个接口分别位于不同的名字空间下,编译器也会认为上面的类Foo只实现了IFoo而没有实现IFoo2接口。

这类接口称为侵入式接口。"侵入式"的主要表现在于实现类需要明确声明自己实现了某个接口,这种强制性的接口继承是面向对象编程思想发展过程中一个遭受相当多置疑的特性。接下来讨论为什么这是个问题,以及为何Go语言的接口设计是一个更合适的选择。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

精通JBuilder 2006

JBuilder 2006是一款强大的Java企业级开发平台,其集成了几乎所有的Java技术,涵盖了软件开发生命周期的各个过程。本书深入浅出地介绍了JBu...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊