Supposons que j'ai un énorme formulaire de saisie, qui représente bien sûr des classes. J'ai besoin que cette saisie soit chargée dans les instances de la classe. Cette saisie contient évidemment des contrôles (de validation très compliqués), la couche logique contient évidemment déjà cette validation de saisie. la question est de savoir ce que je fais avec le gui.
Dois-je simplement, de manière très laide, réécrire toutes ces validations dans l'interface graphique ?
Ou dois-je écrire des méthodes statiques dans la couche logique, puis utiliser ces méthodes dans l'interface utilisateur et dans la couche logique, tout en créant une duplication de la validation elle-même (d'abord l'interface utilisateur se valide, puis la logique valide ce qui lui est envoyé) ?
Ou dois-je simplement supposer que l'interface graphique est correcte, entourer le code pertinent qui utilise la couche logique, avec un bloc d'essai, et ensuite, si une exception est levée, informer l'utilisateur que QUELQUE CHOSE ne va pas (sans lui donner l'occasion de savoir ce que c'est) ?
ou dois-je exposer l'exception, ce qui revient à lui exposer des paramètres, des classes et des noms d'espaces de noms, qu'il ne comprendra probablement pas.
Ou dois-je créer une classe d'exception spéciale pour chaque erreur, et informer ainsi l'utilisateur de la nature exacte du problème, tout en créant des centaines d'exceptions possibles ?
Ou devrais-je les séparer en exceptions générales, qui incluent toutes une énumération décrivant le contenu exact de l'erreur, puis attraper ces exceptions, et en vérifiant l'énumération informer l'utilisateur de ce qui est exactement le problème, mais rendre l'application plus lourde en attrapant inutilement des exceptions tout le temps.
ou devrais-je (quelqu'un me l'a proposé, ce n'est pas mon idée, ne me criez pas dessus :D) valider l'entrée dans la couche logique, et ne la vérifier que dans l'interface graphique (cela me semble être une solution absolument horrible :D)
et une question beaucoup plus importante - où dois-je apprendre de telles choses ? En général, mon instinct est assez bon, mais je ne veux pas inventer inutilement la roue (je suis presque sûr qu'il existe déjà des conventions pour des choses aussi élémentaires que celles que l'on rencontre tous les jours).
Merci beaucoup !