没有合适的资源?快使用搜索试试~ 我知道了~
第一组重构(重构:改善既有代码的设计)
0 下载量 181 浏览量
2021-01-20
12:30:01
上传
评论
收藏 72KB PDF 举报
温馨提示
试读
4页
1.提炼函数 实例 function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); // print details console.log(`name: ${invoice.customer}`); console.log(`amount:${outstanding}`); } ↓↓↓ function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); pr
资源详情
资源评论
资源推荐
第一组重构(重构:改善既有代码的设计)第一组重构(重构:改善既有代码的设计)
1.提炼函数提炼函数
实例实例
function printOwing(invoice) {
printBanner();
let outstanding = calculateOutstanding();
// print details
console.log(`name: ${invoice.customer}`);
console.log(`amount:${outstanding}`);
}
↓↓↓
function printOwing(invoice) {
printBanner();
let outstanding = calculateOutstanding();
printDetails(outstanding);
// print details
function printDetails(outstanding) {
console.log(`name: ${invoice.customer}`);
console.log(`amount:${outstanding}`);
}
}
动机动机
提炼函数提炼函数将一段代码提炼到独立的函数中,并以这段代码的用途为这个函数命名。
使用提炼函数提炼函数的情况:
将意图与实现分开。
2.内联函数内联函数
实例实例
function getRating(driver) {
return moreThanFiveLateDeliveries(driver) ? 2 : 1;
}
function moreThanFiveLateDeliveries(driver) {
return driver.numberOfLateDeliveries > 5;
}
↓↓↓
function getRating(driver) {
return (driver.numberOfLateDeliveries > 5) ? 2 : 1;
}
动机动机
使用内联函数内联函数的情况:
函数内部的代码和函数名同样清晰易读;
有一群组织不合理的函数。可以将它们都内联到一个大型函数中,再以自己喜欢的方式重新提炼出小函数;
代码中太多间接层,使得系统中的所有函数都似乎只是对另一个函数的简单委托。
3.提炼变量提炼变量
实例实例
return order.quantity * order.itemPrice -
Math.max(0, order.quantity - 500) * order.itemPrice * 0.05 +
Math.min(order.quantity * order.itemPrice * 0.1, 100);
↓↓↓
const basePrice = order.quantity * order.itemPrice;
const quantityDiscount = Math.max(0, order.quantity - 500) * order.itemPrice * 0.05;
const shipping = Math.min(basePrice * 0.1, 100);
return basePrice - quantityDiscount + shipping;
动机动机
使用提炼变量提炼变量的情况:
表达式复杂而且难以理解。使用局部变量将表达式分解为比较容易理解的形式;
有一块复杂的逻辑,提炼变量使我们更好的理解部分逻辑是要干什么。
4.内联变量内联变量
实例实例
weixin_38688969
- 粉丝: 3
- 资源: 939
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0