2016-05-12 11 views
0

Ich habe eine Frage bezüglich Aktion und Refactoring. Der folgende Code ist im Wesentlichen, was ich tue. Ich habe mir gedacht, da es wiederholte Codes gibt, werde ich versuchen, eine Methode zu erstellen, die die allgemeine Aktivität enthält und Aktion für sauberere Codes verwendet. (In der SomeSettingChangeIHaveToDoCommonlyBeforeFAR) Da diese allgemeinen Codes jedoch selbst im echten Code sehr klein sind, habe ich den Eindruck, dass der Code nicht so sauber ist.Wie ordne ich einen Code gut mit Action um?

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)); 
} 

Während es den Code ein wenig tut verkürzen, weil der gemeinsame Code nicht so lange ist, fühlen sich die Lesbarkeit des Codes ich ein wenig gesunken. Auch hilft mir nicht, dass ich einen so langen Satz wie meinen Methodennamen habe.

Ist es immer noch eine gute Praxis, die Aktion für einen solchen Fall zu verwenden?

Antwort

0

So würde ich es schreiben.

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

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