Dies ist ein kleiner Witz, aber jedes Mal, wenn ich so etwas codieren muss, stört mich die Wiederholung, aber ich bin nicht sicher, ob eine der Lösungen nicht schlechter ist.
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- Gibt es einen Namen für diese Art von Logik?
- Bin ich ein bisschen zu OCD?
Ich bin offen für böse Codevorschläge, wenn auch nur aus Neugier ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
. Die wichtigsten Details, um sicherzustellen, dass Sie über die Daten für DoSomething () verfügen, befinden sich auf einer niedrigeren Abstraktionsebene und sollten daher eine andere Funktion haben. Diese Funktion hat einen Namen auf der höheren Abstraktionsebene, und ihre Implementierung erfolgt auf niedriger Ebene. Die folgenden guten Antworten sprechen dieses Problem an.
DefaultAction
Anrufe verletzen das DRY-Prinzip