news 2026/11/4 6:01:33

Go进阶之尽量定义小接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Go进阶之尽量定义小接口

接口越大.抽象程度越低.

1.Go推荐定义小接口:

接口就是将对象的行为进行抽象形成的契约.契约有繁有简.Go选择了去繁就简.

1).契约的自动遵守:

Go语言中接口与其实现者之间的关系是隐式的.无须像其他语言(如java)那样要求实

现者显示放置implents声明.实现者仅需实现接口方法集中的全部方法.就算是自动

遵守了契约.实现了接口.

2).小契约:

契约繁了便束缚束脚.降低灵活性.抑制表现力.Go表现在代码上便是尽量定义小接口.

2.Go标准库定义的接口:

源码位置:src/builtin/builtin.go

// The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface { Error() string }

源码位置:src/io/io.go

type Reader interface { Read(p []byte) (n int, err error) }

源码位置:src/net/http/server.go

type ResponseWriter interface { Header() Header Write([]byte) (int, error) WriteHeader(statusCode int) }

可以看到上面的接口的方法数量为1~3个这种小接口的最佳实践已经被Go程序员和

各个社区项目广泛采用.

3.小接口的优势:

1).接口越小.抽象程度越高.被接纳度越高.

计算机程序本身就是对真实世界的抽象与在构建.抽象是对同类事物去除其个别的 次

要的方面.抽取其相同的 主要的方面的方法.不同的抽象程度会导致抽象出的概念对应

的事物集合不同.抽象程度越高.对应的空间集合越大.抽象程度越低(越具象.越接近事

物的真实面貌).对应的空间集合越小.

示例:

// 会飞的. type Flyable interface { Fly() } // 会游泳的. type Swimmable interface { Swim() } // 会飞会游泳的. type FlySwimmable interface { FlySwim() }

2).易于实现和测试.

3).契约职责单一.易于复用组合.

4.定义小接口遵循的点:

1).抽象出接口.

要设计和定义小接口.需要先有接口.在定义小接口之前.先需要理解问题域.然后创建

接口.

2).初期不要太在意接口的大小.

3).将大接口拆分为小接口.

我们有多少十年.又能舍得为十年付出多少呢.

如果大家喜欢我的分享的话,可以关注我的微信公众号

念何架构之路

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 2:08:51

一个玩具webgl框架

自己学习了《webgl编程指南》,在学习的过程中就行了记录,您可以看到我在博客其实有大量的篇幅去记录。于是我把学到的进行一个总结。 于是这个玩具webgl的框架就出现了。如果您发现了问题,可以跟我说下。谢谢包容 如果你感兴趣,…

作者头像 李华
网站建设 2026/11/3 2:08:52

弱口令介绍及破解方式,一文详解!

一、弱口令的定义 仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。 二、弱口令的特点 1、连续字符串(如aaaa,abc…

作者头像 李华
网站建设 2026/11/3 2:09:03

零基础怎么如何学网络安全,一文带你零基础从入门到精通!

一、学习建议 1.了解基础概念: 开始之前,了解网络安全的基本概念和术语是很重要的。你可以查找网络安全入门教程或在线课程,了解网络安全领域的基本概念,如黑客、漏洞、攻击类型等。 2.网络基础知识: 学习计算机网…

作者头像 李华
网站建设 2026/11/3 2:09:03

基于51单片机的智能浇花系统

基于51单片机的智能浇花系统设计 一、设计背景与意义 家庭园艺、阳台种植已成为日常休闲的重要方式,但传统人工浇花存在浇水时机不精准、外出无人照料、水量控制不当等问题,易导致花卉缺水枯萎或积水烂根。现有智能浇花系统多依赖物联网平台与高端控制…

作者头像 李华
网站建设 2026/11/3 2:03:23

大数据深度学习|计算机毕设项目|计算机毕设答辩|大数据多因子模型在股票投资策略中的实现

一、项目介绍 随着金融市场的发展和信息技术的进步,大数据多因子模型在股票投资策略中的应用日益广泛,为投资者提供了更为科学、高效的投资决策依据。本研究聚焦于大数据多因子模型在股票投资策略中的实现过程,旨在深入剖析该模型如何精准挖…

作者头像 李华