package mainimport "fmt"const (x  = 11a  = iotab  = iotac0 = 23c1c2d = iotae
)
const (aa = iotabb = iota
)type sql interface {open(string) string
}func open(url string, sql sql) {//依赖的是sql接口类型,具体使用的时候可以根据具体实现类型实例化,类似mysql的驱动,只需要暴露sql接口即可,具体实现可以依赖第三方的实现fmt.Printf("打开的url:%s\n",sql.open(url))
}type ssql struct {//ssql实现了sql interfaceurl string
}func (s ssql) open(string) string {return s.url
}
func main() {ssql := ssql{url: "127.0.0.1",}open(ssql.url, ssql)//具体使用可以使用具体的实现,但是定义的时候使用接口依赖}
//如果理解的有问题,希望评论能够指出来。。

golang依赖接口,不要依赖具体实现相关推荐

  1. golang 标准库间依赖的可视化展示

    简介 国庆看完 << Go 语言圣经 >>,总想做点什么,来加深下印象.以可视化的方式展示 golang 标准库之间的依赖,可能是一个比较好的切入点.做之前,简单搜了下相关的内 ...

  2. python 抽象类、抽象方法、接口、依赖注入、SOLIP

    python 抽象类.抽象方法.接口.依赖注入.SOLIP 1.程序设计原则:SOLIP SOLIP设计原则 1.单一责任原则(SRP) 一个对象对只应该为一个元素负责 2.开放封闭原则(OCP) 对 ...

  3. 五.抽象接口与依赖反转(C面向对象开发)

    内容参考于<抽象接口技术和组件开发规范及其思想> 五.抽象接口与依赖反转 基于多态可以实现"与硬件无关"的应用程序. 在 C 编程中,多态的核心解决方法是充分利用&qu ...

  4. ApiPost自动化测试基础之:接口参数依赖的情景处理

    在<ApiPost环境变量之第1课>里,我们介绍了什么是ApiPost环境变量,并如何定义.使用它. 环境变量.接口参数依赖的处理是ApiPost自动化测试的基础.本文主要讲解接口参数依赖 ...

  5. golang中的Mock依赖

    Mock依赖 有的时候,由于业务逻辑的复杂性,功能代码并不会就这么直接,往往还会掺杂很多其他组件,这就给我们的测试工作带来很大的麻烦,我这里列举几个常见的依赖: 组件依赖 函数依赖 组件依赖和函数依赖 ...

  6. golang 面向接口编程

    在 Golang 语言项目开发中,为了更加方便操作 MySQL,我们通常会选择开源 ORM,但是社区有很多 ORM,可能在项目后期会遇到更换 ORM 的需求,我们可以使用接口使 ORM 尽量少的侵入业 ...

  7. 框架依赖注入和普通依赖注入_依赖注入快速入门:它是什么,以及何时使用它...

    框架依赖注入和普通依赖注入 by Bhavya Karia 通过Bhavya Karia 介绍 (Introduction) In software engineering, dependency i ...

  8. boot的几个依赖 spring_Spring boot依赖管理和数据库使用

    首先新建一个gradle项目 编辑gradle.build文件 创建启动类 创建pojo的 编辑gradle.build文件 plugins {id 'java'id 'com.gadle.build ...

  9. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )

    文章目录 前言 一.创建 事件监听器 对应的 动态代理 二.动态代理 数据准备 三.动态代理 调用处理程序 四.动态代理 实例对象创建 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

  10. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取要注入事件的 View 对象 | 通过反射获取 View 组件的事件设置方法 )

    文章目录 前言 一.获取要注入事件的 View 对象 二.通过反射获取 View 组件的事件设置方法并执行 前言 Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , ...

最新文章

  1. 伍六七带你学算法 入门篇-矩形重叠
  2. actuator 微服务信息的完善
  3. 软件工程结对开发团队成员以及题目介绍
  4. Linux文件预读对系统的影响
  5. k8s示例:RS和Deployment
  6. 如何修改ECShop发货单查询显示个数
  7. Problem Collection II 构造
  8. 除了陈真处外的深圳论坛SZ4J
  9. 设计模式笔记三:单例模式
  10. 瑜伽扭身祈祷式动作教程
  11. 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆柱展开图过程详解...
  12. 百度地图点聚合,加载1万个marker
  13. 沧海一声笑计算机版本,各个版本的《沧海一声笑》,古韵十足
  14. css交集选择器什么意思_零基础学习CSS(3)——交集选择器、并集选择器、
  15. 180天如何突击高考-从400到550?
  16. matlab中plot函数画线时 颜色和类型
  17. OpenLDAP配置坎坷路
  18. 如何合理运用美容院资源
  19. [Asp.Net Core]鉴权授权
  20. 厦门one_理想汽车称厦门事故系因用户驾驶不慎碰撞所致,曾现多次起火情况

热门文章

  1. android支付平台,android移动支付
  2. matplotlib绘图_手把手教你使用Matplotlib绘图实战
  3. 执行nvidia-smi出错
  4. Windows2008R2 --Active Directory回收站
  5. WF4 AttachedPropertiesService
  6. 在tomcat上全手工部署Servlet3.0
  7. 101 LINQ Samples
  8. Java基础-hashMap原理剖析
  9. Express+Socket.IO 实现简易聊天室
  10. 在Android NDK下打印log