你先做这几步:
1、写一大堆代码。
2、标记出重复的部分。
3、剩下的代码思考一下能不能改成相似的形式,从而扩大重复的部分。
4、重新组织代码把重复的部分放到一起,避免穿插不重复的代码。
5、将代码用空行和花括号分成职能相对单一的代码块。
接下来就是一些具体的消重方法了:
1、对于简单的没有控制流的,输入输出都很简单的代码,直接抽出成方法,用VS的重构工具抽取。
2、如果有复杂的控制流,剪枝缩减控制流,并且尝试让重复的代码覆盖所有分支,即可抽出方法,不能抽出成一个方法,也可以根据分支抽出不同方法。
3、对于前后重复,中间不同的代码,将不同部分抽出,作为一个函数参数传入。
4、使用基于约定消灭mapping代码。
另外对于初学者一个很重要的事情就是不要提前抽象代码,不要提前消重,先写出重复的代码,再对代码进行消重工作。