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

重构代码之替换参数为显式方法

替换参数为显式方法 是一种重构技术,旨在通过替换方法参数来创建更清晰、更具可读性的代码。当一个方法包含标志性参数时,该方法的行为可能会根据参数的不同而发生改变。这样会导致方法的调用方式不够明确,因为调用者不一定能直观地知道每个参数的含义。此时,可以将此方法拆分成多个更具描述性的方法,以提高代码的可读性和可维护性。

一、示例

假设你有一个方法 SetDiscount,它接收一个布尔参数来决定是否应用学生折扣:

public void SetDiscount(bool isStudent)
{if (isStudent){// 学生折扣逻辑}else{// 非学生折扣逻辑}
}

此时,SetDiscount(true)SetDiscount(false) 对调用者而言不够直观。通过替换参数,你可以将其拆分为两个单独的方法。

二、重构后的代码

将原方法替换为两个具体方法,每个方法名清楚地表达了其行为:

public void ApplyStudentDiscount()
{// 学生折扣逻辑
}public void ApplyStandardDiscount()
{// 非学生折扣逻辑
}

这样,调用时可以更加清晰地看到具体折扣类型:

// 清晰地显示不同折扣类型
ApplyStudentDiscount();
ApplyStandardDiscount();

三、适用场景

  • 当参数值具有布尔或枚举类型时,此方法特别有用,因为不同参数值通常对应不同的行为。
  • 当方法行为复杂并且在调用端对参数理解较困难时。
  • 增加代码可读性和可维护性,尤其是当方法的逻辑根据参数变化较大时。

四、优缺点

优点:

  • 增强代码的可读性,使方法的意图更明确。
  • 减少调用者对参数的猜测,有利于维护。

缺点:

  • 可能导致方法数量增加,特别是在有多个标志参数的情况下。

在使用替换参数为显式方法时,应根据实际场景衡量方法的数量和可读性之间的平衡。

http://www.lryc.cn/news/480742.html

相关文章:

  • 三菱QD77MS定位模块速度限制功能
  • Axure PR 9 多级下拉选择器 设计交互
  • Java基础使用②Java数据变量和类型+小知识点
  • 从 HTTP 到 HTTPS 再到 HSTS:网站安全的演变与实践
  • Qt的跨平台介绍
  • 数据库DQL
  • Am I Isolated:一款安全态势基准测试工具
  • Unity性能优化 -- 性能分析工具
  • 【微信小程序】基本语法
  • go中的类型断言详解
  • vite构建的react程序放置图片
  • 学习事件循环
  • 终端NuShell git权限异常处理
  • Mybatis Plus 集成 PgSQL 指南
  • Rust常用数据结构教程 Map
  • <el-popover>可以展示select change改变值的时候popover 框会自动隐藏
  • SQLI LABS | Less-37 POST-Bypass mysql_real_escape_string
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day9
  • 深度学习:GLUE(General Language Understanding Evaluation)详解
  • 基于Multisim直流稳压电源电路±9V、±5V(含仿真和报告)
  • Vue Cli的配置中configureWebpack和chainWebpack的主要作用及区别是什么?
  • ubuntu主机搭建sysroot交叉编译环境
  • Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码...
  • 实验三 JDBC数据库操作编程(设计性)
  • 各种环境换源教程
  • Rust项目中的Labels
  • Jmeter的安装和使用
  • 初识Electron 进程通信
  • go语言中的通道(channel)详解
  • 【JS】内置类型的相关问题