2010-10-06 8 views
5

Sto per creare una classe utente per il mio progetto. Qualche opinione sul fatto che sia una cattiva pratica creare una classe così comunemente chiamata? Potrei completarlo con un prefisso specifico per il mio progetto.Le "best practice" di denominazione della classe "Utente" Java?

+1

è che il progetto è stato concepito per essere utilizzato come libreria da altri progetti (e User sarà una classe pubblica)? – Thilo

+0

No. Progetto web proprietario. In realtà mi sento abbastanza a mio agio nel mantenere l'utente come utente, ma abbiamo anche un altro concetto di dominio di una sessione. Non ce l'ho ancora, ma nominare quello mi sta già facendo venire il bruciore di stomaco. – Steve

risposta

3

Questo è ciò che sono packages.

+2

Bene si potrebbe finire per importare due pacchetti con classe "Utente". Ciò probabilmente causerebbe alcuni mal di testa. – rkg

+0

@Ravi, ma se questo dovesse essere un problema, allora potresti fare riferimento alle classi con i loro nomi completi. –

+2

@ Michael: È vero, ma sento che danneggia la leggibilità del codice. – rkg

1

L'utilizzo di nomi comuni non è una cattiva pratica, finché ea meno che non si descriva il nome come tale per la funzionalità della classe. ricorda di creare pacchetti adeguati che possano definire la tua classe in modo più specifico.

2

Ti suggerisco di anteporre definitivamente un termine specifico dell'applicazione alla classe utente. "Utente" è troppo comune e vago. Si potrebbe facilmente finire usando API che ha la classe "User" o Interface. Sebbene gli ultimi IDE rendano relativamente facile il refactoring del codice, sarebbe più pulito e semplice se si dispone di una classe "User" specifica per l'app.

+0

Sono d'accordo con te. Comincia a diventare un casino quando hai più classi con lo stesso nome. –

0

È necessario utilizzare Java package s per evitare conflitti di nome. Non c'è niente di sbagliato nell'usare un nome comune, ma assicurati di inserirlo nel suo pacchetto. Ad esempio, si potrebbe avere la seguente struttura:

com/ 
    yourwebsite/ 
     yourproject/ 
      userdata/ 
       User.java 

È quindi iniziare il file "User.java" con:

package com.yourwebsite.yourproject.userdata; 

Quando si importano, si potrebbe usare:

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

Vorrei ancora suggerire che le persone non nominino le loro classi "String" o "List" o "Collection" o "Exception" o "Connection" o "Session". Sto bene con "Utente", se non altro perché non è comunemente usato altrove (nel mio attuale spazio di lavoro, che ha molte librerie, ce n'è solo uno in "com.sun.tools.internals ..." e uno in "org .hsqldb ", nessuno dei quali è probabile che tu lo usi). – Thilo

+0

@Thilo, sì, certamente non userei i nomi che sono già in uso in nessuno dei pacchetti "java. *" O "javax. *", Ma al momento non ci sono classi User nell'API Java. –

1

Cerco sempre di usare nomi comuni come Utente per chiarezza. Basta essere sicuri che i nomi siano tratti dal dominio del problema e dal vocabolario del progetto esistente. State attenti alle ambiguità e, se ne sorgete, cambiate il nome della classe. Gli IDE moderni con supporto per il refactoring automatico lo rendono facile.

+0

Sì. Avere il nome corretto della classe nel pacchetto appropriato sarà la cosa giusta. Gli IDE come IntelliJ sono un ottimo supporto per la ricerca e l'importazione di nomi di classi - può anche essere automatico. – Jayan

0

Questo nome è improbabile che venga utilizzato da qualsiasi API pubblica, quindi è ok per un'app usarlo.