美文网首页
高阶函数&策略模式的运用

高阶函数&策略模式的运用

作者: 2016晓 | 来源:发表于2022-02-16 16:05 被阅读0次

高阶函数+策略模式 函数体复用案例

场景

现实开发中,常常需要把原先的一个函数要拆成多个,但不同点只少数几处。

目标

避免复制出的多份样板式代码;拆出的函数不同点可以尽可能直观书写。

以下是我的实现

image.png

细节说明:

拆分出的函数差异点:1、使用不同的keyFormat字符串;2、调用的rpc不同

将原函数,下沉成一个内部函数,并添加一个入参XXXStrategy。这个策略struct包含的字段都是函数类型:入参为原先书写的内容,返回为可能变更的内容(变不变,由拆分出的对外函数实现)

变更函数时,需要将函数的参数+返回 保持相同。不同时需要转换适配,才能让主函数体,最大程度的保持“原样”

高阶函数 缓存查询结果案例

场景

在原先的查询位置,添加缓存逻辑

目标

缓存处理的逻辑,尽可能少的入侵业务代码

我的实现

image.png image.png

细节说明:

缓存处理函数为二阶函数,传入原先要执行的函数,返回一个补充了缓存逻辑的函数。

总结

案例一,围绕着将【变化】(拆出函数的差异点)【不变】(可复用的主体执行逻辑),分离书写、结合执行。更重要的是,将原有代码的字面内容,极大的保留下来,这样在多人开发时,merge代码时意义重大。

案例二,【变化】不再是逻辑的“替换”,而是进行“补充”。缓存处理作为控制逻辑,书写时保持不带有业务逻辑。查询操作作为业务逻辑,需要方便的将控制逻辑添加进来。(谈设计时常说的控制反转)

相关文章

  • 高阶函数&策略模式的运用

    高阶函数+策略模式 函数体复用案例 场景 现实开发中,常常需要把原先的一个函数要拆成多个,但不同点只少数几处。 ...

  • 11.7设计模式-策略模式-详解

    设计模式-策略模式 策略模式详解 策略模式在android中的实际运用 1.策略模式详解 2.策略模式在andro...

  • # 从0到1完美诠释异步编程和手写Promise

    掌握高阶函数的使用,使用高阶函数解决异步问题 掌握发布订阅模式和观察者模式 掌握promise核心应用,使用pro...

  • 高阶函数及其运用

    前言 一道经典面试题: 当大家看到这个面试题的时候,能否在第一时间想到使用高阶函数实现?想到在实际项目开发过程中,...

  • JavaScript高阶函数

    JavaScript高阶函数(Heigher-order function) 概念 《javascript设计模式...

  • python学习(三)函数式编程

    高阶函数 函数也是变量,函数参数为函数的函数,称作高阶函数 自定义高阶函数 内建高阶函数 map/reducema...

  • 05-隐式转换

    高阶函数 算子/函数/API File 模式匹配 老师 异常捕获 偏函数 其他函数 currying 字符串插值 ...

  • if-else代码优化方案①策略模式 ②Map+Function

    if-else?解决方案①策略模式 ②Map+Function函数式接口 1.策略模式解决if-else 策略模式...

  • React高阶组件

    React高阶组件 在开始聊高阶组件之前我们先来看下高阶函数和高阶组件在形式上的差异: 一、什么是装饰器模式: 要...

  • Python | 高阶函数基本应用及Decorator装饰器

    一、高阶函数 理解什么是高阶函数?以及高阶函数的基本应用方法 ▲ 高阶函数 在了解什么是高阶函数之前,我们来看几个...

网友评论

      本文标题:高阶函数&策略模式的运用

      本文链接:https://www.haomeiwen.com/subject/qlrdlrtx.html