Comment déterminer comment appeler une classe XHelper ou XUtils?
À mon avis :
La classe d'assistance , est une classe qui peut être instanciée et effectuer un travail professionnel
La classe Utils , est une classe statique qui effectue des opérations petites et répétitives sur un type d'instance (exemple de classes utils ArrayUtils ou IOUtils d'Apache)
Utils
pour une classe statique qui pourrait être utilisée n'importe où dans l'organisation, ou dans une autre organisation. UneHelper
classe a un code commun qui peut être réutilisé dans un projet et a des dépendances dans le projet. Bien sûr, il n'y a pas de règle généralement acceptée, mais je trouve cela utile.Réponses:
Il existe de nombreux styles de dénomination à utiliser. Je suggérerais Utils simplement parce que c'est plus courant.
Une classe Utility est censée avoir uniquement des méthodes statiques et être sans état. Vous ne créeriez pas une instance d'une telle classe.
Un Helper peut être une classe utilitaire ou il peut être avec état ou exiger la création d'une instance. J'éviterais cela si possible.
Si vous pouvez rendre le nom plus précis. par exemple, s'il a des méthodes de tri, faites-le XSorter
Pour les tableaux, vous pouvez trouver des classes d'assistance comme
BTW un raccourci pour une classe utilitaire est une énumération sans instances
Si vous avez besoin d'implémenter une interface, j'utiliserais un Singleton sans état.
la source
En général? C'est entièrement arbitraire. Il n'y a pas de règles pour cela.
la source
Un utilitaire est une classe "nœud feuille" d'usage général. Autrement dit, il n'a aucune dépendance dans votre projet et peut être porté de projet en projet sans se casser ni devenir inutile. Exemples:
Vector3
,RandomNumberGenerator
,StringMatcher
, etc ...Un "assistant" semble être n'importe quelle classe dont la conception est d'aider une autre classe. Celles-ci peuvent dépendre ou non de votre projet. Si vous créez une
GameNetworkClient
classe, vous pouvez dire que laGameNetworkConnection
classe est une "aide", car elle "aide" leGameNetworkClient
.La façon dont les développeurs se réfèrent aux outils reflète l'usage courant de ces mots. Si vous vous souvenez des outils auditifs décrits comme «utiles» ou «utiles», un outil utile a tendance à avoir un certain contexte (la râpe à fromage aide à râper le fromage, le décapant à maïs aide à décaper le maïs, le chargeur rapide aide à recharger une arme à feu). On s'attend à ce qu'un "utilitaire" fonctionne dans une variété de contextes (WD-40, ruban adhésif, couteaux de l'armée, colle, lampe de poche, etc.).
la source
Comme l'a dit Jesper, c'est entièrement arbitraire . Vous pouvez penser à ce qui fonctionne pour votre organisation et en faire la convention.
Pour moi, c'est quelque chose comme ça:
Faire des tâches générales qui pourraient être utiles dans différents modules. Comme l'a dit Peter Lawrey, des noms plus spécifiques sont utiles.
Les tâches qui ne sont utilisées que dans le module dans lequel il est placé et qui n'auront pas de sens d'être importées ailleurs. D'où le nom pourrait être plus spécifique - ModuleName Helper (par exemple AdministrationHelper , LoginHelper )
la source
Il n'y a pas de réponse ultime à cela. Trouvez un schéma de dénomination et respectez-le. Nommer vos packages et vos classes est une partie importante de l'architecture logicielle, et personne ne peut vous retirer cette décision.
Personnellement, j'aime mieux XHelper, mais je vois XUtils plus souvent en code étranger.
J'aime aussi le schéma de dénomination "pluriel" que vous trouverez à la fois dans le JDK et dans Guava :
si une classe traite des
Collection
objets, elle est appeléeCollections
Array> Arrays (jdk)
List> Lists (goyave)
Map> Maps (goyave)
etc.
la source