重构第15天 移除重复的代码(Remove Duplication)

理解:移除重复的代码,顾名思义就是把多处重复的代码搬移到一个公共的地方,来减少代码量,提高代码可维护性。

详解:看下面的例子就很容易理解

重构前code

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 
 7 namespace ReflectorDemo
 8 {
 9     public class MedicalRecord
10     {
11         public DateTime DateArchived { get; private set; }
12         public bool Archived { get; private set; }
13 
14         public void ArchiveRecord()
15         {
16             Archived = true;
17             DateArchived = DateTime.Now;
18         }
19 
20         public void CloseRecord()
21         {
22             Archived = true;
23             DateArchived = DateTime.Now;
24         }
25     }
26 }

可以看到 Actived=true,DateArchived=DateTime.Now 在两个方法中都要用到,我们就可以把这连个字段提取出来,放到一个新方法中。

重构后code

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 
 7 namespace ReflectorDemo
 8 {
 9     public class MedicalRecord
10     {
11         public DateTime DateArchived { get; private set; }
12         public bool Archived { get; private set; }
13 
14         public void ArchiveRecord()
15         {
16             SwitchToArchived();
17         }
18 
19         public void CloseRecord()
20         {
21             SwitchToArchived();
22         }
23 
24         private void SwitchToArchived()
25         {
26             Archived = true;
27             DateArchived = DateTime.Now;
28         }
29     }
30 }

这个重构很简单,绝大多数程序员都会使用这种重构方法。

posted @ 2016-04-07 10:52  IT少年  阅读(424)  评论(0编辑  收藏  举报