教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang接口的封装

golang接口的封装

发布时间:2021-05-14   编辑:jiaochengji.com
教程集为您提供golang接口的封装等资源,欢迎您收藏本站,我们将为您提供最新的golang接口的封装资源

 

一、声明接口

1 type Result interface {
2     LastInsertId() (int64, error)
3     RowsAffected() (int64, error)
4 }

 

二、实现接口,这里却将接口作为成员变量,进而将接口的实现转换为接口的调用,仅仅是封装了接口,实际上并没有真的实现,而是坐等别人去实现

 1 //    一把锁
 2 //    一个结果集的假接口实现,表示需要的功能,让他人来具体实现。假装实现了某个接口,其实是调用了内部接口的对应方法
 3 type driverResult struct {
 4     sync.Locker
 5     resi        driver.Result
 6 }
 7 //    Result 是对已执行 SQL 命令的总结,。
 8 //    LastInsertId() 会返回一个由数据库生成的整数, 这个整数是对命令的响应。 在插入一个新的数据行时, 这个整数通常来源于数据表中的自增数据列。
 9 //    并不是所有数据库都支持这个特性, 并且各个数据库在实现这个特性时使用的语句也会有所不同。
10 //    RowsAffected() 返回受到更新、插入或者删除操作影响的行数量, 并不是所有数据库或者所有数据库驱动都支持这个特性。
11 type Result interface {
12     LastInsertId() (int64, error)
13     RowsAffected() (int64, error)
14 }
15 
16 func (dr driverResult) LastInsertId() (int64, error) {
17     dr.Lock()
18     defer dr.Unlock()
19     return dr.resi.LastInsertId()
20 }
21 
22 func (dr driverResult) RowsAffected() (int64, error) {
23     dr.Lock()
24     defer dr.Unlock()
25     return dr.resi.RowsAffected()
26 }

 

转载于:https://www.cnblogs.com/igoodful/p/11520827.html

到此这篇关于“golang接口的封装”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang 接口获得实现的名称_数字货币交易所统一接口
Go核心编程-面向对象 [OOP]
golang接口的封装
go语言封装http请求工具类(访问外部接口)
浅谈golang中的接口
【golang】实现error接口的结构体,fmt打印信息不完整
Golang接口 interface 和结构体struct
Go语言编程之面向“对象”编程篇
GO语言学习流程
golang中接口的内部实现

[关闭]
~ ~