C'est un problème mineur, mais chaque fois que je dois coder quelque chose comme cela, la répétition me dérange, mais je ne suis pas sûr qu'aucune des solutions ne soit pire.
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- Y a-t-il un nom pour ce genre de logique?
- Suis-je un peu trop TOC?
Je suis ouvert aux suggestions de codes diaboliques, ne serait-ce que par curiosité ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
. Les détails indispensables de l’assurance que vous avez les données pour DoSomething () sont à un niveau d’abstraction inférieur et doivent donc occuper une fonction différente. Cette fonction aura un nom dans le niveau d'abstraction le plus élevé et sa mise en œuvre sera de bas niveau. Les bonnes réponses ci-dessous répondent à ce problème.
DefaultAction
appels violent le principe DRY