当前位置: 首页 > news >正文

GO设计模式——7、适配器模式(结构型)

目录

适配器模式(Adapter Pattern)

优缺点

使用场景

注意事项

代码实现


适配器模式(Adapter Pattern)

     适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。将一个类的接口转化为客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

优缺点

(1)优点:

  • 可以让任何两个没有关联的类一起运行。
  • 提高了类的复用。
  • 增加了类的透明度。
  • 灵活性好。

(2)缺点:过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。

使用场景

  • 有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。

注意事项

      适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。

代码实现

package mainimport "fmt"// 新接口
type MusicPlayer interface {play(fileType string, fileName string)
}// 旧接口
type ExistPlayer struct {
}func (e *ExistPlayer) PlayMp3(filName string) {fmt.Println("play mp3:", filName)
}
func (e *ExistPlayer) PlayWma(fileName string) {fmt.Println("play wma:", fileName)
}// 适配器
type PlayerAdapter struct {existPlayer ExistPlayer
}func (p *PlayerAdapter) play(fileType string, fileName string) {switch fileType {case "mp3":p.existPlayer.PlayMp3(fileName)case "wma":p.existPlayer.PlayWma(fileName)default:fmt.Println("暂不支持此类型文件播放")}
}
func main() {player := PlayerAdapter{}player.play("mp3", "nsjd")player.play("wma", "孤勇者")
}
http://www.lryc.cn/news/255134.html

相关文章:

  • Java实现TCP一对一通信,实现UDP群聊通信
  • Vue + Element 实现按钮指定间隔时间点击
  • UE Websocket笔记
  • STM32h7 接收各种can id情况下滤波器的配置
  • 《深入理解计算机系统》学习笔记 - 第三课 - 浮点数
  • 总结:服务器批量处理http请求的大致流程
  • 算法通关村第十八关-青铜挑战回溯是怎么回事
  • 区分node,npm,nvm
  • 7-2 小霸王
  • Linux内核上游提交完整流程及示例
  • TS学习——快速入门
  • 深圳锐科达风力发电广播对讲解决方案
  • 极智芯 | 解读国产AI算力 璧仞产品矩阵
  • Echarts折线图常见问题及案例代码
  • javaTCP协议实现一对一聊天
  • 机器学习应用 | 使用 MATLAB 进行异常检测(上)
  • Java -jar参数详解
  • RocksDB 在 vivo 消息推送系统中的实践
  • 【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)
  • 点滴生活记录1
  • gitea仓库迁移
  • 〖大前端 - 基础入门三大核心之JS篇㊽〗- BOM特效开发
  • 【扩散模型】ControlNet从原理到实战
  • AI并行计算:CUDA和ROCm
  • 2023/12/1JAVAmysql(mysql连接,数据定义语言,数据类型,数据操作语言,数据查询语言)
  • 2023五岳杯量子计算挑战赛数学建模思路+代码+模型+论文
  • 生信数据分析高效Python代码
  • Spring Kafka常用配置详解
  • 跨域的多种方案详解
  • Java / Scala - Trie 树简介与应用实现