2016-05-12 58 views
0

我有一个关于Action和重构的问题。以下代码基本上是我在做的。我想,因为有重复的代码,我会尝试创建一个方法来保存常见的活动,并使用Action来实现更简洁的代码。 (在SomeSettingChangeIHaveToDoCommonlyBeforeFAR)然而,因为即使在真实代码中这些常用代码都非常小,我觉得代码不是那么干净。如何使用Action重构代码?

public void FindAndReplace1(bool isThisGood) 
{ 
    ... some find and replace code ... 
} 

public void FindAndReplace2(int somePara) 
{ 
    ... other find and replace code ... 
} 

public void SomeSettingChangeIHaveToDoCommonlyBeforeFindAndReplace(Action findAndReplace) 
{ 
    ... change setting ... 
    findAndReplace(); 
    ... change setting back ... 
} 

public void Main() 
{ 
    if (conditionA) 
     SomeSettingChangeIHaveToDoCommonlyBeforeFindAndReplace(FindAndReplace1(true)); 
    else 
     SomeSettingChangeIHaveToDoCommonlyBeforeFindAndReplace(FindAndReplace2(1)); 
} 

虽然它缩短了代码位,因为共同的代码并不长,代码的可读性我感觉低了一点。也没有帮助,我有一个长的句子作为我的方法名称。

在这种情况下使用动作仍然是一个好习惯吗?

回答

0

下面是我将如何写它。

private void FindAndReplace(bool condition) 
{ 
    if (condition) 
    { 
     FindAndReplace1(true); 
    } 
    else 
    { 
     FindAndReplace2(1); 
    } 
} 

public void Main() 
{ 
    ChangeSetting(); 
    FindAndReplace(conditionA); 
    ChangeSettingBack();   
}