J'ai travaillé pour une entreprise qui n'a pas de pratique de révision de code. Pour m'améliorer et élargir mes horizons, j'aimerais recevoir une petite critique constructive.
Maintenant, je propose d'analyser le cas récurrent avec une abondance de branches.
Tâche
L'utilisateur a l'intention de faire glisser le fichier avec la souris d'une fenêtre de dossier à une autre. Vous devez écrire une méthode de répartiteur qui vérifie l'essence de l'événement et la possibilité de le traiter, si nécessaire, clarifie les détails, puis appelle la méthode souhaitée ou affiche un message sur les restrictions.
Si l'utilisateur fait un glisser-déposer d'un dossier vers un dossier et qu'un autre dossier se trouve dans une section différente, vérifiez la copiabilité. Si vous pouvez copier, copiez. Sinon, donnez un message que vous ne pouvez pas copier. Il ne peut pas être copié pour des raisons: il n'y a pas de permission d'écriture; pas assez d'espace libre; le système de fichiers ne prend pas en charge les caractères du nom; le nom de fichier dans le dossier de destination aura un chemin trop long; il y a déjà un fichier du même nom dans le dossier (ouvrez une boîte de dialogue pour écraser le fichier, si l'utilisateur est d'accord, puis écrasez).
Si le dossier de destination se trouve sur la même partition que le fichier, déplacez le fichier. Impossible de se déplacer: aucune autorisation d'écriture; le chemin de destination complet sera trop long, il y a déjà un fichier du même nom dans le dossier (ouvrir une boîte de dialogue); le fichier est système et ne peut pas être supprimé; il existe déjà un fichier portant ce nom (ouvrez une boîte de dialogue pour écraser le fichier, si l'utilisateur est d'accord, puis écrasez).
Si l'utilisateur a déplacé le fichier vers une autre fenêtre, mais qu'il a le même chemin, créez une copie du fichier (ajoutez «copie #» au nom, où # est le plus petit nombre positif qui rend le fichier unique). Impossible de créer une copie: aucune autorisation d'écriture; le chemin complet est trop long; pas assez d'espace libre.
Si l'utilisateur a transféré avec le bouton droit, appelez la boîte de dialogue pour sélectionner l'action (copier / déplacer / créer un raccourci / créer une copie).
Si l'utilisateur a publié le fichier dans la même fenêtre (le fichier a été corrompu) avec le bouton gauche, ne faites rien. Et si c'est le cas, suggérez de créer une copie ou un raccourci. Si le fichier ne tombe pas dans la fenêtre du dossier, ne faites rien.
Au fil du temps, de nouvelles conditions peuvent apparaître, de nouvelles actions, les conditions déjà décrites pour changer les actions peuvent changer.
Solution de discussion
J'offre ma solution controversée en Java, dans laquelle j'ai atteint le deuxième niveau d'imbrication le plus élevé si:
public static void dispatchFileDropping( FileDragNDropEvent event ) {