首页 > 其他分享 >适配器模式

适配器模式

时间:2022-09-29 16:37:28浏览次数:42  
标签:return package 适配器 模式 source func tg adapter

适配器模式

被适配目标接口

package adapter

type source  interface {
    SpecificRequest() string
}

被适配的目标

package adapter

type sourceImpl struct {}

func NewSourceImpl() source {
    return &sourceImpl{}
}

func (a *sourceImpl)SpecificRequest() string {
    return "adapter message"
}

适配的目标接口

package adapter

type target interface {
    Request() string
}

适配的目标

package adapter

type targetImpl struct {
    source
}

func NewTargetImpl(a source) target {
    return &targetImpl{source:a}
}

func (t *targetImpl)Request() string {
    return t.source.SpecificRequest()
}

使用者

package adapter

type User struct{
    tg target
}

func NewUser(tg target) *User {
    return &User{tg:tg}
}

func (u *User)getResult() {
    fmt.Println(u.tg.Request())
}

测试文件

package adapter

func TestAdapter(t *testing.T) {
    a := NewSourceImpl()
    tg := NewTargetImpl(a)
    u := NewUser(tg)
    u.getResult()
}

标签:return,package,适配器,模式,source,func,tg,adapter
From: https://www.cnblogs.com/mathsmouse/p/16741996.html

相关文章

  • 【设计模式】29.结构型模式-装饰模式(Decorator)
    一、描述装饰模式能够在不改变原来对象结构和功能的前提下,动态的给对象增加新的功能,相比于使用子类扩展的方式,装饰模式更加的灵活。角色(1)抽象构件类:为具体构件类和装饰......
  • 大端模式和小端模式
    总是将这两个弄混了,特此记录如下:大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;小端模式(Little-endian):低位字节排放在内......
  • 备忘录模式 Memento
    “状态变化”模式在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化"模式为这一问题提供了一种解决方案。......
  • log4net 日期和文件大小滚动Composite模式 删除自定义几天前的日志
    官方配置信息Apachelog4net–Apachelog4net:ConfigExamples-Apachelog4net官方示例实现RollingFileAppenderlogging-log4net/DerivedAppender.csat3f2b3......
  • k8s部署elk+filebeat+kafka-kraft模式集群(三)filebeat部署
    k8s集群部署filebeatfilebeat需要采集每个节点的容器日志,所以我们选择daemonset的方式#catfilebeat-rbac.yamlapiVersion:v1kind:ServiceAccountmetadata:nam......
  • k8s部署elk+filebeat+kafka-kraft模式集群(二)kafka-zk集群
    kafka-zookeeper集群部署zk使用官方镜像,版本为3.5本文跳过rbac之类配置,与前文相同#catzk-statefulset.yamlapiVersion:v1kind:Servicemetadata:name:zk-svc......
  • k8s部署elk+filebeat+kafka-kraft模式集群(一)ES集群+kibana部署
    前言:这次是在部署后很久才想起来整理了下文档,如有遗漏见谅,期间也遇到过很多坑有些目前还没头绪希望有大佬让我学习下一、环境准备k8s-master013.127.10.209k8s-ma......
  • Appium PO模式UI自动化测试框架——设计与实践
      (阅读目录)  1.目的  相信做过测试的同学都听说过自动化测试,而UI自动化无论何时对测试来说都是比较吸引人的存在。相较于接口自动化来说它可以最大程度的模......
  • Java中装饰者模式
    装饰模式可以在不改变原来类中代码的基础上,增强类中的方法装饰类LDHWrapper和被装饰类LDH必须实现同个接口Star装饰类中要定义属性为:被装饰类对象,同时定义构造方法重写......
  • Oracle 12C R2-新特性-多租户:支持本地UNDO模式
    在12.1中,所有的在一个实例中的PDB只能共享同一个UNDO表空间。在12.2中它们都有各自的undo表空间了。这种新的管理机制就叫做本地undo模式。与此同时,在之前的版本中现在就成......