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

设计模式-Adapter(适配器模式)GO语言版本

前言

个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上,而不是系统上

 

问题

就用一个简单的问题,懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈(stack)或者是普通队列(queue)

解决方案

type Stack struct {element *list.List
}func NewStack() *Stack {return &Stack{element: list.New(),}
}func (s *Stack) Push(value interface{}) {s.element.PushBack(value)
}func (s *Stack) Pop() interface{} {lastElement := s.element.Back()if lastElement != nil {s.element.Remove(lastElement)return lastElement.Value}return nil
}

上面的代码就是一个栈的简单实现。仅仅是把list的功能直接拿来修改了一下。

总结

适配器遵循开闭原则。 只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。

但同样代码整体复杂度增加, 因为你需要新增一系列接口和类。 有时直接更改服务类使其与其他代码兼容会更简单。

适配器模式的核心设计思想,是对对象级别的进行修改,并且利用已有功能进行修改,范围较小。

http://www.lryc.cn/news/487122.html

相关文章:

  • SAM_Med2D 训练完成后boxes_prompt没有生成mask的问题
  • 游戏引擎学习第18天
  • Kotlin return与return@forEachIndexed
  • 基于Canny边缘检测和轮廓检测
  • 力扣题目解析--合并k个升序链表
  • Linux:调试器-gdb/cgdb
  • 『VUE』30. 生命周期的介绍(详细图文注释)
  • Python 人脸检测:使用 Dlib 和 OpenCV
  • 【大数据学习 | flume】flume的概述与组件的介绍
  • torch.is_storage()
  • 2411rust,编译时自动检查配置
  • 在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)
  • MATLAB绘制克莱因瓶
  • HTML5实现趣味飞船捡金币小游戏(附源码)
  • Excel表数学于三角函数、统计函数
  • 小试银河麒麟系统OCR软件
  • Dubbo RPC线程模型
  • 三角波生成函数
  • 使用Python实现对接Hadoop集群(通过Hive)并提供API接口
  • Qt学习笔记(四)多线程
  • java的小数计算如何保证精度不丢失
  • 分布式----Ceph应用(下)
  • 小鹏汽车嵌入式面试题及参考答案
  • qt5半成品飞机大战小游戏
  • 一文速学---红黑树
  • 【graphics】图形绘制 C++
  • 全志科技嵌入式面试题及参考答案
  • html 图片转svg 并使用svg路径来裁剪html元素
  • Wallpaper壁纸制作学习记录01
  • 【深度学习】wsl-ubuntu深度学习基本配置