对象调用某个函数,并将其结果传递给另一个函数

int basePrice = quantity * itemPrice;
double discountLevel = getDiscountLevel();
double finalPrice = discountPrice(basePrice, discountLevel);

重构:让参数接受者移除该项参数,并直接调用该函数

int basePrice = quantity * itemPrice;
double finalPrice = discountPrice(basePrice);

动机
    如果函数可以通过其他途径获得参数值,那么它就不应该通过参数取得该值。过长的参数列会增加程序阅读者的理解难度。

Replace Parameter with Methods(以函数取代参数)相关推荐

  1. Replace Parameter with Explicit Methods(以明确函数取代参数)

    函数的行为,完全取决于参数值 public void setValue(final String name, final int value) {if ("height".equa ...

  2. [Microsoft][ODBC SQL Server Driver][SQl Server]参数数据类型 text 对于 replace 函数的参数 1 无效。...

    说到数据库中文本的替换,一般人首先想到的是Replace函数: update Table set Column=Replace(Column,'oldkeyword','newkeyword') 不过 ...

  3. ES6 | let 关键字 + const关键字 + 箭头函数 + rest参数 + 扩展运算符 ... + Symbol + 迭代器 + 生成器 + 变量的解构赋值 + 模板字符串

    目录 ECMASript 相关介绍 ECMASript 6 新特性 let 关键字 const关键字 变量的解构赋值 模板字符串 简化对象写法 箭头函数 => 参数默认值 rest参数 扩展运算 ...

  4. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  5. Python函数及其参数

    定义函数def >>> def MyfirstFunction(): print('第一个函数') >>> MyfirstFunction() 第一个函数 函数的参 ...

  6. Python基本语法_函数属性 参数类型 偏函数的应用

    目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...

  7. Python:wordcloud.wordcloud()函数的参数解析及其说明

    Python:wordcloud.wordcloud()函数的参数解析及其说明 目录 wordcloud.wordcloud()函数的参数解析及其说明 wordcloud.wordcloud()函数的 ...

  8. Swift 烧脑体操(二) - 函数的参数

    前言 \\ Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说 ...

  9. Python函数默认参数陷阱

    阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]): li.append(v) ret ...

最新文章

  1. 分布式ID(唯一性)的生成方法汇总
  2. Android targetSdkVersion 原理
  3. 一款基于jquery带百分比的响应式进度加载条
  4. access查询出生日期格式转换_从身份证中提取出生日期的3个方法和计算年龄和星座的方法...
  5. JavaScript实现表单的全选,反选,获取值
  6. 《大数据》2021年第5期目次摘要
  7. nagios监控slave(借助脚本)
  8. 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 下
  9. yylabel 加载html,YYLabel的简单使用
  10. detours介绍与使用
  11. 幼儿园体育游戏电子计算机教案,幼儿园体育游戏活动教案8篇
  12. Linux技术——lsof命令详解
  13. linux卸载mono,CentOS7安装Mono并保留离线安装包
  14. 网络电台mms地址大全(二)
  15. 微信浏览器网页点击图片缩放
  16. 桌面便利贴软件下载 电脑桌面便签小工具软件下载
  17. 如何在eclipse制作的APP中添加背景图
  18. 阿里云服务器发送邮件
  19. 2020年12月7日-2020年12月13日
  20. 10个免费的顶级跨浏览器测试工具

热门文章

  1. 论文浅尝 - AAAI2020 | 多轮对话系统中的历史自适应知识融合机制
  2. 技术动态 | 北京大学计算机所邹磊教授研究组开源面向 RDF 知识图谱的自然语言问答系统 gAnswer...
  3. TabError的解决方法
  4. db2 查杀死锁进程
  5. Python Django项目部署 Linux 服务器
  6. 【HAOI2010】工厂选址题解
  7. 操作系统(二): 进程与线程
  8. qt.pro转成vs程序
  9. matlab7.0安装说明
  10. frame或者iframe的contentwindow属性