iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >函数实现接口时的模式名称是什么?
  • 471
分享到

函数实现接口时的模式名称是什么?

2024-02-09 20:02:40 471人浏览 安东尼
摘要

PHP小编柚子在这里为大家解答一个常见问题:“函数实现接口时的模式名称是什么?”在php中,当一个函数实现了一个接口中的所有方法时,这种模式被称为“接口实现模式”或“接口适配器模式”。

PHP小编柚子在这里为大家解答一个常见问题:“函数实现接口时的模式名称是什么?”在php中,当一个函数实现了一个接口中的所有方法时,这种模式被称为“接口实现模式”或“接口适配器模式”。接口实现模式是一种常见的设计模式,它允许程序员通过实现接口来定义一组方法,从而达到代码重用和模块化的目的。通过这种模式,我们可以实现接口的多态性,提高代码的灵活性和可维护性。无论是在面向对象编程还是在函数式编程中,接口实现模式都是一种重要的技术手段。

问题内容

Go中,我们可以创建实现接口的函数,例如Http.handler接口和具体类型http.handlerfunc。我创建了这种模式的另一个简单示例来计算不同员工的奖金。


type BonusCalculator interface {
    Calculate(salary float64) float64
}

type BonusFunc func(salary float64) float64

func (bonus BonusFunc) Calculate(salary float64) float64 {
    return bonus(salary)
}

var (
    DeveloperBonus BonusFunc = func(salary float64) float64 { return salary*1.5 + 2500.00 }
    ManagerBonus   BonusFunc = func(salary float64) float64 { return salary * 2.0 }
    DirectorBonus  BonusFunc = func(salary float64) float64 { return salary * 3.3 }
)

func CalculateBonus (bonus BonusCalculator, salary float64) float64 {
  return bonus.Calculate(salary)
}

func main() {
    bonus := CalculateBonus(DirectorBonus, 35000.00)
    fmt.Printf("bonus %.2f", bonus)
}


所以上面我们有简单的 bonusfuncs 实现接口 bonuscalculator 而不是使用结构来做同样的事情。

这个模式有名字吗?我在很多地方看到它,但从未找到它的名字。

解决方法

这个模式有名字吗?我在很多地方看到它,但从未找到它的名字。

是的,这种模式称为适配器,因为它允许某种“接口”(在本例中为闭包)用作另一种接口(满足 bonuscalculator 的类型)。

在您的示例中,您有一个接口 bonuscalculator

type bonuscalculator interface {
    calculate(salary float64) float64
}

但是,您有 func(salary float64) float64 类型的闭包,并且您希望在需要满足 bonusfunc 的类型时能够传递它们,即具有方法 calculate(salary float64) float64 (闭包没有具有此类名称的方法,因此它们不满足 bonuscalculator)。

您想要的是将 func(salary float64) float64 改编为 bonuscalculator。因此,您定义了一个新类型 bonusfunc,它是适配器。它将派生自您想要适应的闭包类型,然后通过定义一个方法 calculate(salary float64) float64 来满足 bonuscalculator 的要求,该方法只需调用底层闭包:

type BonusFunc func(salary float64) float64

func (bonus BonusFunc) Calculate(salary float64) float64 {
    return bonus(salary)
}

bonusfunc适配器;它的存在只是为了适应 func(salary float64) float64 以便满足 bonuscalculator 接口。现在,每当您将 func(salary float64) float64 分配给 bonusfunc 时,您都会获得一个满足 bonuscalculator 的值。

以上就是函数实现接口时的模式名称是什么?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 函数实现接口时的模式名称是什么?

本文链接: https://www.lsjlt.com/news/562771.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 函数实现接口时的模式名称是什么?
    php小编柚子在这里为大家解答一个常见问题:“函数实现接口时的模式名称是什么?”在PHP中,当一个函数实现了一个接口中的所有方法时,这种模式被称为“接口实现模式”或“接口适配器模式”。...
    99+
    2024-02-09
  • java中什么是函数式接口
    这篇文章给大家介绍java中什么是函数式接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型...
    99+
    2023-06-14
  • javascript中没有名称的函数是什么
    这篇文章主要讲解了“javascript中没有名称的函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中没有名称的函数是什么”吧!在javascript中,没有名称...
    99+
    2023-06-14
  • 实时微信域名检测API接口的实现方式
    应用场景最近我们刚成立了一个项目,在微信推广中,域名时不时的就被微信拦截,这使我们都非常头大,这时我翻阅互联网上所有的资料,知道有微信域名检测这样一个API接口,问了身边做技术的朋友,朋友也说需要一这微信域名检测这样的API接口,实时检测域...
    99+
    2023-06-04
  • PHP函数的Path接口是什么?
    PHP是一种广泛使用的编程语言,被广泛用于web开发。PHP的功能强大,可以在短时间内创建功能丰富的网站。其中一个强大的功能是Path接口。在本文中,我们将探讨PHP函数的Path接口是什么,以及如何使用它。 Path接口是什么? 首先,让...
    99+
    2023-07-08
    函数 path 接口
  • Java8中如何实现函数式接口
    这篇文章将为大家详细讲解有关Java8中如何实现函数式接口,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Lambda表达式小试牛刀Lambada表达式可以理解为:可传递的匿名函数的一种简洁表...
    99+
    2023-06-16
  • Java8中怎么实现一个函数式接口
    这篇文章给大家介绍Java8中怎么实现一个函数式接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以下我们继续深入Java8函数式编程模型public class Test1 { ...
    99+
    2023-05-30
    java8
  • golang函数中的接口实现是如何实现的?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-24
  • C#显式实现接口原理是什么
    这篇文章主要介绍“C#显式实现接口原理是什么”,在日常操作中,相信很多人在C#显式实现接口原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#显式实现接口原理是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • 获取实现接口或继承结构的结构名称
    php小编柚子为大家介绍一种获取实现接口或继承结构的结构名称的方法。在编程中,我们经常需要获取一个类实现了哪些接口或继承了哪些结构。通过使用反射机制,我们可以轻松地获得这些信息。只需使...
    99+
    2024-02-10
  • Java8中怎么利用Stream实现函数式接口
    这期内容当中小编将会给大家带来有关Java8中怎么利用Stream实现函数式接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。函数式接口什么是函数式接口?简单来说就是只有一个抽象函数的接口。为了使得函数式...
    99+
    2023-06-16
  • 什么是接口?golang中怎么实现接口?
    Golang 是一门受到很多程序员喜爱的编程语言,它拥有卓越的性能和强大的并发特性。在 Golang 中,接口是一种非常重要和强大的特性。本文将详细介绍 Golang 接口的实现。一、什么是接口?接口是一个抽象的概念,它是一组方法的集合,这...
    99+
    2023-05-14
  • 实时数据处理:Python 接口的优势是什么?
    实时数据处理是当今数据分析领域的一个重要分支。在这个领域中,Python 接口的优势越来越受到人们的关注。Python 是一种简单易用的编程语言,它具有广泛的应用和强大的数据处理能力,因此成为了实时数据处理的理想选择之一。本文将介绍 Pyt...
    99+
    2023-07-28
    接口 大数据 实时
  • mysql是什么模式实现的
    mysql 采用两种主要的存储模式:innodb 和 myisam。innodb 支持事务安全、行级锁和外键约束,适用于需要数据完整性和高并发的应用程序;myisam 性能优异,适合读取...
    99+
    2024-04-02
  • 解析器解析内置函数名称时使用的默认规则是什么?
    实际上,当解析器遇到作为内置函数名称的单词时,它必须确定该名称是表示函数调用还是对标识符的非表达式引用例如表名或列名。考虑以下查询 -1. Select sum(salary) from employee; 2. Create t...
    99+
    2023-10-22
  • 关键字 var 后面的下划线和接口名称是什么意思?
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《关键字 var 后面的下划线和接口名称是什...
    99+
    2024-04-05
  • C++ 函数指针在实现设计模式中的作用是什么?
    c++++ 函数指针在设计模式中用于实现策略模式、命令模式和观察者模式,提供了在运行时动态选择和切换行为的能力,从而增强了代码的灵活性、可重用性和可扩展性。具体作用如下:策略模式:存储并...
    99+
    2024-04-17
    设计模式 函数指针 c++
  • Golang接口实现的方法是什么
    这篇文章主要介绍“Golang接口实现的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang接口实现的方法是什么”文章能帮助大家解决问题。Golang 接口是什么和C++、Java等...
    99+
    2023-07-05
  • 互联网中html的正式名称是叫什么
    这篇文章主要介绍互联网中html的正式名称是叫什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html的正式名称是:超文本链接标示语言(Hyper Text Markup Language),是WWW的描述语言;它...
    99+
    2023-06-06
  • Golang函数式选项模式怎么实现
    本篇内容主要讲解“Golang函数式选项模式怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Golang函数式选项模式怎么实现”吧!概览最近阅读源码的时候看到一段不错的代码,但是当时却不是...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作