Go 语言实现 23 种设计模式适配器

将一个类型的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以一起工作。

Example_one

package mainimport "fmt"// Adaptee 适配者
type MyLegacyPrinter struct{}func (l *MyLegacyPrinter) Print(s string) (newMsg string) {newMsg = fmt.Sprintf("Legacy Printer: %s\n", s)println(newMsg)return
}// 目标抽象类
type LegacyPrinter interface {Print(s string) string
}// 客户要求接口
type ModernPrinter interface {PrintStored() string
}// 适配器
type PrinterAdapter struct {OldPrinter LegacyPrinterMsg        string
}func (p *PrinterAdapter) PrintStored() (newMsg string) {if p.OldPrinter != nil {newMsg = fmt.Sprintf("Adapter: %s", p.Msg)newMsg = p.OldPrinter.Print(newMsg)} else {newMsg = p.Msg}return
}func main() {// 旧的使用方式var old_adapter MyLegacyPrinterold_adapter.Print("Old ")// 适配器模式msg := "New"new_adapter := PrinterAdapter{OldPrinter: &MyLegacyPrinter{}, Msg: msg}returnMsg := new_adapter.PrintStored()fmt.Print(returnMsg)
}

Go 语言实现 23 种设计模式适配器相关推荐

  1. Go 语言实现 23 种设计模式 单例模式

    Go 语言实现 23 种设计模式 单例模式 单例模式 单例模式是一种常用的软件设计模式,在使用过程中,单例对象的类只有一个实例.使用单例模式,1 可以节省内存等资源,例如windows操作系统的资源管 ...

  2. Go 语言实现 23 种设计模式(修饰器)

    修饰器 修饰器模式就是在不改变对象内部结构的情况下,动态扩展它的功能. Example_one type Object func(string) stringfunc Decorate(fn Obje ...

  3. java外围设计_Java 编程(23 种设计模式)

    简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...

  4. 快来,这里有23种设计模式的Go语言实现

    摘要:设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式是为了可重用代码.让代码更容易被他人理解并且保证代码可靠性. 本文分享自华 ...

  5. 从追MM谈23种设计模式

    从追MM谈Java的23种设计模式 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说&quo ...

  6. 23种设计模式的有趣见解 .

    转载地址:http://blog.csdn.net/leichelle/article/details/7999588 23种设计模式的有趣见解 23种设计模式的有趣见解创 建型模式 1.FACTOR ...

  7. JAVA设计模式总结之23种设计模式

    一.什么是设计模式                                                                                           ...

  8. 23种设计模式简介_设计模式简介

    23种设计模式简介 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要 ...

  9. 系统架构设计师 - 23种设计模式(GOF)

    文章目录 总览 创建型(5种) 工厂方法 Factory Method 抽象工厂 Abstract Factory 生成器模式 Builder 原型模式 Prototype 单例模式 Singleto ...

最新文章

  1. 实验七:层叠样式表(二)
  2. 2020年度“社区之星”出炉!原来社区里的技术大佬们是这样成长起来的!
  3. 利用Landsat8 进行利用土地分类
  4. TabHost的使用(二):实现TabHost.TabContentFactory接口
  5. 1250 Fibonacci数列(矩阵乘法快速幂)
  6. 嘘,Python 优化提速的 8 个小技巧
  7. C#中使用jieba.NET、WordCloudSharp制作词云图
  8. knex 单表查询_knex.js
  9. jdbc连接mysql数据库过程_jdbc连接数据库的步骤
  10. 发起图片请求的几种可能性(webkit内核)
  11. jdk5.0下支持JSR-223的方法
  12. 金融行业灾备压力大?看中和农信如何从容应对
  13. stm32编程初始化设备步骤
  14. 华为校园招聘面试题目及流程
  15. 快速搞懂MD5解密原理,了解常用的MD5在线解密网站
  16. [歌词]《一花依世界》《君がいる世界へ》歌词假名罗马音
  17. 计算机无法更改开机密码,不能修改win7电脑开机密码是怎么回事
  18. JavaSE语言基础
  19. 031永久储存:腌制一缸美味的泡菜
  20. win10下速腾聚创RS-Lidar-32配置教程

热门文章

  1. 一招搞定css页面布局
  2. Jquery 日历控件
  3. 博客园-我的新的开始
  4. 【Centos】yum 安装mariaDB
  5. 【Leetcode】【Easy】Implement strStr()
  6. win7下 apache2.2 +php5.4 环境搭建
  7. python 文件遍历
  8. 有效需求分析的基本流程
  9. 折线图表android,Android 折线图表MPAndroidChart的实现
  10. mybatis添加方法可以传map吗_Mybatis中传递多个参数的4种方法总结