重新组织函数--Substitute Algorithm(替换算法)

本文介绍了一种算法重构的方法,通过将原有算法替换为更简洁、更易于理解和维护的新算法来提高代码质量。具体案例展示了如何利用Java集合框架简化查找流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你想要把某一个算法替换为另一个更清晰的算法。

将函数本体替换为另一个算法。


String foundPerson(String[] person){

for(int i=0;i<person.length;i++){

if(person[i].equals("Don")){

return "Don";

}

if(person[i].equals("John")){

return "John";

}

if(person[i].equals("Kent")){

return "Kent";

}

}

return " ";

}

重构后:

String foundPerson(String[] person){

List candidates=Arrays.asList(new String[]{"Don","John","Kent"});

for(i=0;i<person.length;i++){

if(candidates.contains(person[i]){

return person[i];

}

}

return "";

}


动机:

解决问题有好几种方法,我敢打赌其中一些方法会比另一些简单。算法也是如此。如果你发现做一件事可以有更清晰的方式,就应该以较清晰的方式取代复杂的方式。“重构”可以把一些复杂的东西分解为较简单的小块,但有时你就必须壮士断腕,删除整个算法,代之以较简单的算法。随着对问题有了更多的理解,你往往会发现,在原先的做法之外,有了更简单的解决方案,此时你就需要改变原先的算法。如果你开始使用程序库,而其中提供的某些功能与你自己的代码重复,那么你也需要改变原先的算法。

有时你会想修改原型的算法。让它去做与原先略有差异的事。这时候你也可以先把原先的算法替换为一个较易修改的算法,这样后续的修改就会轻松很多。

使用这项重构手法之前,请先确定自己已经尽可能了解了原先函数。替换一个巨大而复杂的算法是非常困难的。只有先将它分解为较简单的小型函数,然后你才能很有把握的进行算法替换工作。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值