重构-简化函数调用


1、Rename Method(函数改名)
  

2、Add Parameter(添加参数)
  

3、Remove Parameter(移除参数)
  

4、Separate Query from Modifier(将查询函数和修改函数分离)
  某个函数既返回对象状态值,又修改对象状态。建立两个不同的函数,其中一个负责查询,另一个负责修改。

5、Parameterize Method (令函数携带参数)
  若干函数做了类似的工作,但在函数本地中却包含了不同的值。建立单一函数,以参数表达那些不同的值。提炼重复代码,将“少量数值视为参数”。

6、Replace Parameter with Explicit Methods(以明确函数取代参数)
  有一个函数,其中完全取决于参数值而采取不同行为。针对该参数的每一个可能值,建立一个独立函数。

7、Preserve Whole Object(保持对象完整)
  你从某个对象中取出若干值,将它们作为某一次函数调用时的参数。改为传递整个对象。

8、Replace Parameter with Methods(以函数取代参数)
  对象调用某个函数,并将所得结果作为参数,传递给另一个函数。并且另一个函数本身也能调用前一个函数。让参数接受者去除该项参数,并直接调用前一个函数。

9、Introduce Parameter Object(引入参数对象)
  某些参数总是很自然地同时出现。以一个对象取代这些参数。

10、Remove Setting Method(移除设置函数)
  类中的某个字段应该在对象创建时被设值,然后就不再改变。去掉该字段的所有设置函数。

11、Hide Method(隐藏函数)
  又一个函数,从来没有被其他任何类用到。将这个函数改为private。尽可能降低所有函数的可见度。

12、Replace Constructor with Factory Method(以工厂函数取代构造函数)
  将构造函数替换为工厂函数。

13、Encapsulate Downcast(封装向下转型)
  

14、Replace Error Code with Exception(以异常取代错误码)
  某个函数返回一个特定的代码,用以表示某种错误情况。改用异常。

(1)、决定应该抛出受控异常还是非受控异常:如果调用者有责任在调用前检查必要状态,就抛出非受控异常;如果想抛出受控异常,可以新建一个异常类阿,也可以使用现有的异常类。
(2)、找到该函数的调用者,对它们进行相应调整,让它们使用异常:如果函数抛出非受控异常,那么就调整调用者,使其在调用函数前做适当检查;如果抛出受控异常,那么就调整调用者,使其在try区域中使用

15、Replace Exception with Test(以测试取代异常)
  面对一个调用者这可以预先检查的条件,抛出了一个受控异常。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值