使用Go来模拟Java中的接口 实现类

使用Go来模拟Java中的接口 实现类

针对项目中,相同的流程业务进行重构,使用Go来简单模拟Java中的接口,实现类的方式进行重构。
分享一简单例子:

package main

//模拟java中的接口,实现类

import "fmt"

// 声明一个接口,
type workthread interface {
    do(name string)
}

// 传入的wt的子类不同,do方法执行的逻辑也不同
func Handle(wt workthread, name string) {
    fmt.Println("--------执行do方法前的逻辑------")
    wt.do(name)
    fmt.Println("--------执行do方法后的逻辑------")
}

type SparkNode struct {
    ClusterName string
}

func (sn *SparkNode) do(name string) {
    fmt.Println("----hello, I'm spark node", "\t", sn.ClusterName)
}

func (sn *KafkaNode) do(name string) {
    fmt.Println("----hello, I'm kafka node\t", sn.ClusterName)
}

type KafkaNode struct {
    ClusterName string
}

func main() {

    sparkNode := &SparkNode{
        ClusterName: "k8s",
    }

    kafkaNode := &KafkaNode{
        ClusterName: "kafka-node",
    }

    Handle(sparkNode, "111")
    Handle(kafkaNode, "222")

}

转载于:https://blog.51cto.com/xingej/2126640

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101616.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • amule的服务器列表

    amule的服务器列表

    2021年4月27日
  • golang 实现HTTP代理和反向代理

    golang 实现HTTP代理和反向代理代理的核心功能可以用一句话概括:接受客户端的请求,转发到后端服务器,获得应答之后返回给客户端。下图是《HTTP权威指南》一书中给出的图例,可以很清晰地说明这一流程:代理的功能有很多,事实上整个互联网到处都充斥着代理服务器。如果所有的HTTP访问都是客户端和服务器端直接进行的话,我们的网络不仅会变得缓慢,而且性能会大打折扣。代理服务器根据不同的配置和使用,可能会有不同的功能,这些…

    2022年7月16日
  • 达梦数据库分区表的使用

    达梦数据库分区表的使用前言在大型的企业应用或企业级的数据库应用中,要处理的数据量通常达到TB级,对于这样的大型表执行全表扫描或者DML操作时,效率是非常低的。为了提高数据库在大数据量读写操作和查询时的效率,达梦数据库提供了对表和索引进行分区的技术,把表和索引等数据库对象中的数据分割成小的单位,分别存放在一个个单独的段中,用户对表的访问转化为对较小段的访问,以改善大型应用系统的性能。达梦数据库分区表主要包括范围…

    2022年5月26日
  • django和drf_jackson序列化原理

    django和drf_jackson序列化原理前言上一篇文章我们讲述了序列化,这篇就带大家一起来实现以下序列化Serializer我们使用序列化类Serializer,我们来看下源码结构,这里推荐使用pycharm左边导航栏的Structu

    2022年8月7日
  • 如何下载ts文件

    如何下载ts文件首先,什么是ts,请自行百度,网上资料很多,了解下基本概念就行,这里就不多做介绍了。网页中是如何播放ts文件的:网页中一般是在一个文件中描述排列顺序,这个文件一般都以m3u8为后缀,然后通过分片段不

    2022年7月1日
  • 关于软件质量的思考 – 什么是质量

    关于软件质量的思考 – 什么是质量

    当选择一个商品的时候,我们常挂在嘴边的一个词就是“质量”,这是影响我们选择的一个很重要的指标。这一篇我们就来探讨一下什么是软件的质量。当然,都是个人的一些观点,不同意可以拍砖或者来探讨。

    质量这个词用得太普遍以至于混乱,有时候它表示质量这个指标,有时候它隐含质量好的意思。而且不可避免的,好的质量常常和它的反面联系在一起,就好像以前的“质量万里行”,或者现在的3.15,列出的都是质量方面的问题,好像很少宣扬质量好的产品。所以很多时候,我们看质量

    2022年9月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号