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

适配器模式——设计模式

https://github.com/youngyangyang04/kama-DesignPattern/blob/main/DesignPattern/6-%E9%80%82%E9%85%8D%E5%99%A8%E6%A8%A1%E5%BC%8F.md

package main

import (
	"fmt"
)

// TypeC接口
type TypeC interface {
	ChargeWithTypeC(*Usb)
}

// Usb接口
type Usb interface {
	ChargeWithUsb()
}

// 新电脑类型
type NewComputer struct {
}

func (np *NewComputer) ChargeWithTypeC() {
	fmt.Println("TypeC")
}

// 现有的usb类型
type Usbtruct struct {
}

func (tcs *Usbtruct) ChargeWithUsb() {

}

// 适配器
type TypeCToUsbAdaptar struct {
	usbOjb *Usbtruct
}

func (typecAdaptar *TypeCToUsbAdaptar) ChargeWithUsb() {
	typecAdaptar.usbOjb.ChargeWithUsb()
	fmt.Println("USB Adapter")
}

func main() {
	var n int
	fmt.Scan(&n)
	var usbObj = new(Usbtruct)
	var newComputer = new(NewComputer)
	var typeCToUsbAdaptar = new(TypeCToUsbAdaptar)
	typeCToUsbAdaptar.usbOjb = usbObj
	for n > 0 {

		var t int
		fmt.Scan(&t)
		if t == 1 {
			newComputer.ChargeWithTypeC()
		} else {
			typeCToUsbAdaptar.ChargeWithUsb()
		}
		n--
	}
}

http://www.kler.cn/a/429807.html

相关文章:

  • IntelliJ IDEA中Maven项目的配置、创建与导入全攻略
  • 浅尝Appium自动化框架
  • SQL UNION 操作符
  • 实用操作系统学习笔记
  • https原理
  • Qt官方下载地址
  • 数据分析:学习指南
  • DDR的跨4K问题
  • java的23种设计模式使用场景
  • 一文详解java中的方法
  • # issue 8 TCP内部原理和UDP编程
  • unity 让文字呈现弧度变化
  • 什么是MMD Maximum Mean Discrepancy 最大均值差异?
  • 《网络安全编程基础》之Socket编程
  • 【软件安装】Linux服务器中部署gitlab-runner实现CICD流水线
  • SSM01-MyBatis框架(一文学会MyBatis)
  • 微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】
  • JS 偏移量和鼠标位置
  • RabbitMQ中Fanout交换机的深入探讨
  • 高质量阅读微信小程序ssm+论文源码调试讲解
  • C# 中的静态构造函数和实例构造函数的区别
  • docker 部署seata
  • 思科模拟器路由器的基本配置
  • 数据挖掘:一、Weka软件的基本操作
  • ubuntu如何安装cuda 11.8版本
  • 21天掌握javaweb-->第12天:Spring Boot项目优化与安全性