2010-10-06 9 views
5

Je suis sur le point de créer une classe User pour mon projet. Des opinions quant à savoir si c'est une mauvaise pratique de créer une telle classe communément nommé? Je pourrais le compléter avec un préfixe spécifique à mon projet.Java "Utilisateur" classe meilleure pratique de nommage?

+1

est ce projet destiné à être utilisé comme une bibliothèque par d'autres projets (et l'utilisateur va être une classe publique)? – Thilo

+0

Non. Projet web propriétaire. Je suis plutôt à l'aise avec le fait de garder User comme utilisateur, mais nous avons aussi un autre concept de domaine d'une session. Je ne l'ai pas encore compris, mais nommer quelqu'un me donne déjà des brûlures d'estomac. – Steve

Répondre

3

C'est ce que packages sont pour.

+2

Eh bien, vous pourriez finir par importer deux paquets ayant la classe "User". Cela causerait probablement des maux de tête. – rkg

+0

@Ravi, mais si cela devait être un problème, alors vous pourriez vous référer aux classes par leurs noms complets. –

+2

@Michael: C'est vrai, mais je pense que cela nuit à la lisibilité du code. – rkg

1

L'utilisation de noms communs n'est pas une mauvaise pratique, jusqu'à ce que vous décriviez le nom comme tel à la fonctionnalité de la classe. gardez à l'esprit de créer les paquets appropriés qui peuvent définir votre classe plus spécifiquement.

2

Je vous suggère de préfixer définitivement un terme spécifique d'application à votre classe d'utilisateur. "Utilisateur" est trop commun et vague. Vous pourriez facilement utiliser l'API qui a la classe "User" ou l'interface. Bien que les derniers IDE rendent relativement facile de refactoriser votre code, il serait plus propre et plus facile si vous avez une classe "User" spécifique à l'application.

+0

Je suis d'accord avec vous. Il commence à devenir un gâchis quand vous avez plusieurs classes avec le même nom. –

0

Vous devez utiliser Java package s pour éviter les conflits de noms. Il n'y a rien de mal à utiliser un nom commun, assurez-vous simplement de le mettre dans son propre paquet. Par exemple, vous pourriez avoir la structure suivante:

com/ 
    yourwebsite/ 
     yourproject/ 
      userdata/ 
       User.java 

Vous commencez alors le fichier "User.java" avec:

package com.yourwebsite.yourproject.userdata; 

Lorsque vous importez, vous devez utiliser:

import com.yourwebsite.yourproject.userdata.User; 
+1

Je suggère toujours que les gens ne nomment pas leurs classes "String" ou "List" ou "Collection" ou "Exception" ou "Connexion" ou "Session". Je suis bien avec "Utilisateur", si seulement parce qu'il n'est pas couramment utilisé ailleurs (dans mon espace de travail actuel, qui a beaucoup de bibliothèques, il n'y en a qu'un dans "com.sun.tools.internals ..." et un dans "org" .hsqldb ", dont vous n'êtes pas susceptible d'utiliser). – Thilo

+0

@Thilo, oui, je n'utiliserais certainement pas les noms qui sont déjà utilisés dans les paquets "java. *" Ou "javax. *", Mais il n'y a pas de classe User dans l'API Java au moment de l'écriture. –

1

J'essaie toujours d'utiliser des noms communs comme Utilisateur pour plus de clarté. Assurez-vous simplement que les noms sont tirés du domaine du problème et du vocabulaire du projet existant. Soyez attentif aux ambiguïtés et, le cas échéant, changez le nom de la classe. Les IDE modernes avec prise en charge du refactoring automatisé facilitent la tâche.

+0

Oui. Avoir le bon nom de classe dans le paquet approprié sera la bonne chose. Les IDE comme IntelliJ supportent très bien la recherche et l'importation de noms de classes - ils peuvent même être automatiques. – Jayan

0

Ce nom est peu susceptible d'être utilisé par une API publique. Une application peut donc l'utiliser.

Questions connexes