J'ai une fonction compliquée qui a besoin d'être refactorisée, il y a trop d'IF imbriquées et ça me rend nerveux juste de la regarder!Refactoriser cette fonction IF imbriquée qui est enveloppée dans un try/catch
S'il vous plaît ignorer ce que les fonctions font, je suis plus préoccupé par la structure/flux et comment il peut être refondus il a moins imbriqué instructions IF
Le débit de base est la suivante:
public static void HandleUploadedFile(string filename)
{
try
{
if(IsValidFileFormat(filename)
{
int folderID = GetFolderIDFromFilename(filename);
if(folderID > 0)
{
if(HasNoViruses(filename)
{
if(VerifyFileSize(filename)
{
// file is OK
MoveToSafeFolder(filename);
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
catch (Exception ex)
{
}
finally
{
// do some things
}
}
Dans le code d'origine, si IsValidFileFormat était faux, le fichier a été supprimé. Ce n'est pas équivalent. –
Désolé - c'est ce que j'ai pour copier et coller sans lire correctement. Je l'ai réparé. –
+1 alors, pour montrer le refactoring "sous-programme d'extraction". –