Gegeben:meinen Code Umgestalten: Bedingungen basierend auf verschiedenen Variablen
internal void Configure(ButtonEventArgs args, IBroker broker, FunctionEntry entry)
{
int phase = broker.TradingPhase;
if (args.Button == ItemType.SendAutoButton)
{
if (phase == 1)
{
entry.SetParameter("ANDealerPrice", -1);
entry.SetParameter("ANAutoUpdate", 4);
}
else if (phase == 2)
{
entry.SetParameter("ANDealerPrice", -1);
entry.SetParameter("ANAutoUpdate", 2);
}
}
if (phase == 1)
{
if (broker.IsCashBMK)
{
entry.SetParameter("Value", 100);
}
else if (broker.IsCross)
{
entry.SetParameter("Value", 200);
}
}
}
Ich suche Anregungen den obigen Code Refactoring. Wie von Fowler vorgeschlagen: "Ersetze Bedingung durch Strategie/Polymorphie", kann ich keinen effektiven Code in diesen Zeilen implementieren. Da es mehrere Bedingungen gibt, basieren Sie auf mehreren Variablen.
Bitte schlagen Sie vor, ob es ein Muster geben könnte, das diese fehleranfälligen und hässlichen Bedingungen beseitigen könnte (Code Geruch).
Vielen Dank für Ihr Interesse.
Edit: 1) Meine Absicht ist es, Open-Closed-Prinzip hier zu verwenden, so dass, wenn morgen eine Änderung in der Logik ich diese Bedingungen durch Einführung einer neuen Klasse erweitern kann. 2) Bitte beachten Sie die magischen Zahlen, im realen Szenario habe ich gültige Konstante/Quelle für sie.
+1 für die Einfachheit (und Lesbarkeit) in Ihrer Lösung. Bis jetzt ist das die annehmbarste Antwort für mich. Vielen Dank. –