第五章 接口2--系统常用接口

简介: 下面介绍几个常用的接口

下面介绍几个常用的接口


1. stringer


  在fmt.print中定义了一个Stringer接口. 这个接口里只有一个方法String. 实现了这个接口的String方法的结构体,  那么在外部调用打印结构体的时候, 将按照Stringer中定义的方式打印.

微信图片_20220509210959.png

例如给Retriever结构体增加一个String方法.


type Retriever struct {
    Contents string
}
func (r *Retriever) String() string {
    return fmt.Sprintf("Contents:%s", r.Contents)
}


使用的时候, 打印对象, 可以看到直接按照String中定义的格式打印


func main() {
    retriever := &mock.Retriever{"内容"}
    fmt.Printf("结构体的值是----%s \n", retriever)
}


直接打印, 打印结果如下:


结构体的值是----Contents:内容 


2. io中的Reader和Write


 通过学些这两个接口, 对接口的: 由使用者来定义接口有了进一步的理解.  

 比如说Reader接口, 定义了一个Read方法


微信图片_20220509211108.png


Writer接口定义了一个Write方法


微信图片_20220509211110.png


实现了Read方法的结构体有很多, 比如io中的File. 他既实现了Read, 又实现了Write. File这个结构体提供了一些能力, 比如读的能力, 写的能力. 但是, File不会明说我实现了哪些接口. 而只是说定义了哪些方法. File中实现的接口, 有些接口是主动定义的, 有些接口碰上的, 正好他也是这么定义的.


  因此, 就是说. 我们定义一个接口, 接口里定义了方法. 而在结构体中, 定义了方法和接口中定义的方法的入参和返回值一致, 我们就认为它实现了这个接口. 虽然我们认为他实现了接口, 但是不是真的实现了接口, 要使用的时候来决定. 如果使用的时候作为接口的实体使用, 那么就表示实体继承了接口. 但是, 如果没有作为接口的实体使用, 那么他就不是实现了接口.


定义方法的时候, 参数尽量使用接口, 这样定义出来的方法, 只要实现了接口的结构体都能用

目录
打赏
0
0
0
0
19
分享
相关文章
第五章 接口3 -- 接口的设计原则
接口的设计原则有很多. 今天我们来研究两种. 后面在陆续研究 1. 开闭原则 2. 依赖倒置原则
379 0
第五章 接口3 -- 接口的设计原则
|
7月前
|
设计接口的几种方法
设计接口的几种方法
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
151 2
python接口自动化(一)--什么是接口、接口优势、类型(详解)
经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下接口的定义。
249 0
python接口自动化(一)--什么是接口、接口优势、类型(详解)
第五章 接口
第一天: 接口的定义和实现 第二天: go语言是面向接口编程.在学习继承的时候说过, go语言只有封装, 没有继承和多态. 那么继承和多态在go中如何实现呢? 通过接口来实现
127 0
第五章 接口
设计和开发一个接口
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:jeff wong链接:http://www.zhihu.com/question/29160554/answer/44419486来源:知乎设计和开发一个接口,至少要考虑到: 1、功能 2、性能 3、安全 4、易用 5、可扩展 6、可维护 7、可测试 8、可运维 9、协议多样 10、互联互通平台无关。
1084 0
|
8月前
|
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
49 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等