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

9.1 接口

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

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

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

第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
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

J2ME手机游戏设计技术与实战

本书主要介绍了在手机上开发J2ME游戏的方法,作者在介绍了J2ME游戏开发相关知识背景的基础上,以大富翁手机游戏的设计开发为例,详细讲述了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客