Comment puis-je convaincre mon collègue de travail, que les méthodes avec 26 paramètres sont d'une mauvaise pratique? Nous avons discuté de cette question, sans aucun progrès.
Plus proche liés à des questions que j'ai pu trouver:
Comment puis-je convaincre mon collègue de travail, que les méthodes avec 26 paramètres sont d'une mauvaise pratique? Nous avons discuté de cette question, sans aucun progrès.
Plus proche liés à des questions que j'ai pu trouver:
Méthodes avec beaucoup de paramètres ne sont pas nécessairement mauvais. Cela dépend de ce que les paramètres sont, par exemple. Je maintiens code avec certaines des méthodes qui prennent des dizaines de paramètres, car ces paramètres représentent des valeurs scalaires dans un objet, et l'objet de la création est le but de cette méthode.
Vous pourriez les réorganiser les paramètres si vous le vouliez, vous pourriez les mettre tous dans une carte, mais alors il n'y a aucun moyen d'être sûr qu'ils sont tous présents. Vous pouvez créer l'objet à la main, mais ensuite, soit vous avez un constructeur avec 26 paramètres ou vous avez 26 setXXXX les appels de méthode. Si votre objet exige de tous ces paramètres pour être complet, je dirais que vous êtes coincé avec le constructeur de l'approche ou la méthode de fabrique. Sinon, vous êtes en s'appuyant sur l'utilisateur configuration de l'objet correctement à chaque fois.
Quoi de mieux?
createTransation(date, username, transAmt, currency, accountNum, resultCode, ...);
Transaction trans = new Transaction(date, username, tranasAmt, currency, ...);
createTransaction(trans);
Transaction trans = new Transaction();
trans.setDate(date);
trans.setUsername(username);
// etc
createTransaction(trans);
Maintenant, si votre méthode a une poignée de paramètres de données et une poignée de paramètres de contrôle, tels que des drapeaux de choisir certains mode de fonctionnement, puis il devient problématique de l'utilisation de ces méthodes, et vous devriez lui expliquer qu'il devrait garder son code plus simple et plus concentré. Une méthode avec beaucoup de paramètres de contrôle a probablement un complexe de contrôle de la voie et pourrait être difficile à maintenir. Toutefois, il est commun pour un point d'entrée unique à un processus compliqué d'avoir beaucoup d'arguments; tenir compte de la ligne de commande pour votre compilateur: vous pourriez avoir des dizaines de drapeaux facilement. Mais dans ce cas, il devrait être possible de regrouper les options dans une structure unique, ce qui rend plus facile de déterminer les options doivent être définies, qui ont le comportement par défaut, etc.
Transaction trans = new Transaction(date, username, tranasAmt, currency, ...);
Options opts = new Options(DEFERRED, VALIDATE, STORE);
createTransaction(trans, opts);
La question d'origine est plutôt vague, mais il est important de se rappeler que, parfois, la complexité du code est nécessaire, ou au moins pas mal.
Cela dépend de ce que les paramètres sont, et ce qu'ils signifient.
Tandis que 26 paramètres semble désinvolte à être excessif, il peut être acceptable dans certains cas (DAL méthodes que la carte de procédures stockées viennent à l'esprit).
La sémantique des paramètres sont plus important que leur nombre - de regarder la liste des paramètres et de se demander si c'était une table de base de données des colonnes, aurais-je besoin de prendre des projections de normaliser?". Aussi se demander "si c'était une table de base de données des colonnes, auraient ils un sens en tant qu'attributs d'une entité unique?"
Dans de nombreux cas, la présence de l'excès de paramètres indique les classes manquantes dans la conception.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.