代码重构之道(七)

合并表达式

你有一系列条件测试,都得到相同结果。将这些测试合并为一个条件表达式,并将这个条件表达式提炼成一个独立函数。

合并重复的条件代码

在表达式的每个分支上都执行了相同的一段代码。将这段重复代码搬移到条件表达式之外。

移除控制标记

在一系列布尔表达式中,某个变量带有”控制标记”的作用。以break/return语句取代控制标记。

以多态取代条件表达式

有个条件表达式根据对象类型的不同而选择不同的行为。将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数声明为抽象函数

简化函数调用

函数改名

函数的名称未能揭示其用途。修改函数名称。

添加参数

某个函数需要从调用端得到更多信息。为此函数添加一个对象参数,让该对象带仅函数所需信息。

移除参数

函数本体不再需要某个参数。去除参数。

分离查询函数和修改函数

某个函数既返回对象状态值,又修改对象值。建立两个不同函数,其中一个负责查询,另一个负责修改。

令函数携带参数

若干函数做了类似的工作,但在函数本体中包含了不同的值。建立单一函数,以参数表达那些不同的值。有这样两个函数:它们做着类似的工作,但因少数几个值致使行为略有不同。在这种情况下,你可以将这些各自分离的函数同一起来,并通过参数来处理那些变化情况,用以简化问题。

以明确函数取代参数

你有一个函数,其中完全取决于参数值而采用不同行为。针对该参数的每一个可能值,建立一个独立函数。如果某个参数有多种可能的值,而函数内又以条件表达式检查这些参数值,并根据不同参数值做出不同的行为,那么就应该使用本项重构。

保持对象完整

从某个对象中取出若干值,将它们作为某一次函数调用时的参数。改为传递整个对象。

以函数取代参数

对象调用某个函数,并将所得结果作为参数,传递给另一函数,而接受该参数的函数本身也能够调用前一个函数。让参数接受者去除该参数,直接调用前一个函数。

引入参数对象

某些参数总是很自然的同时出现。以一个对象取代这些参数。

移除设值函数

类中某个字段在对象创建时被设值,然后不再改变。去掉该字段的所有设值函数。

隐藏函数

某个函数,从来没有被其他任何类用到 。将函数修改为private。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值