这是最常用的重构之一,我们经常要用到它,因为我们的代码中经常因为这或那的原因产生重复代码,让我们来看下面的例子:

   1: public class MedicalRecord
   2: {
   3:     public DateTime DateArchived { get; private set; }
   4:     public bool Archived { get; private set; }
   5:  
   6:     public void ArchiveRecord()
   7:     {
   8:         Archived = true;
   9:         DateArchived = DateTime.Now;
  10:     }
  11:  
  12:     public void CloseRecord()
  13:     {
  14:         Archived = true;
  15:         DateArchived = DateTime.Now;
  16:     }
  17: }
下面是我们重构后的代码,请记住只要有可能就请应用该重构,因为这可以帮你减少代码中的bug数量,另外请牢记DRY(don’t repeat yourself)原则,尽量不要复制/粘贴代码。
   1: public class MedicalRecord
   2: {
   3:     public DateTime DateArchived { get; private set; }
   4:     public bool Archived { get; private set; }
   5:  
   6:     public void ArchiveRecord()
   7:     {
   8:         SwitchToArchived();
   9:     }
  10:  
  11:     public void CloseRecord()
  12:     {
  13:         SwitchToArchived();
  14:     }
  15:  
  16:     private void SwitchToArchived()
  17:     {
  18:         Archived = true;
  19:         DateArchived = DateTime.Now;
  20:     }
  21: }
原文链接:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/15/refactoring-day-15-remove-duplication.aspx

相关文章:

  • 2022-01-04
  • 2022-01-23
  • 2021-07-13
  • 2021-08-23
  • 2021-12-16
  • 2021-06-02
  • 2021-07-29
  • 2021-11-17
猜你喜欢
  • 2021-08-09
  • 2021-05-24
  • 2021-10-07
  • 2021-07-26
  • 2021-09-21
相关资源
相似解决方案