2010-01-23 6 views

Répondre

42

Vous pouvez également voir les noms de paquets comme des noms de domaine Internet inversés (ce qui est souvent également vrai dans le monde réel, voir par exemple le org.apache.commons qui est corrélé avec http://commons.apache.org). Les com (commercial) et org (organization) sont ici alors effectivement Top Level Domain noms.

Les noms de paquets sont en général juste pour identifier le fabricant/fournisseur du code que vous rencontrez.

+15

Et pour garantir l'unicité du nom du package. Je pense que c'est une façon assez intelligente de le faire –

+0

Je peux me tromper, mais com semble inutile à ce stade si tout le monde va l'utiliser. Je préfère utiliser le nom de l'entreprise par lui-même. Je préfère le système de nommage qu'ils ont pour d'autres systèmes d'emballage comme le npm et le compositeur. Ils utilisent 'nom d'utilisateur/nom du paquet' ou quelque chose de similaire. Donc, je nommerais mes paquets dans java en tant que 'nom d'utilisateur.packagename' – OzzyTheGiant

85

Selon Sun, les paquets doivent être espacés en fonction de l'inverse de votre nom de domaine, puis suivis de tout ce que vous voulez. La plupart des entreprises ou organisations ont un nom de domaine .com ou .org, et donc la plupart des paquets commencent par com. ou org.. Pour citer le Sun Code Conventions:

Le préfixe d'un nom de package unique est toujours écrit en lettres ASCII en minuscules et doit être l'un des noms de domaine de premier niveau, actuellement com, edu, gov, mil, net , org, ou l'un des codes à deux lettres anglais identifiant les pays comme spécifié dans la norme ISO 3166, 1981.

Les composants suivants du nom de package varient en fonction des conventions de dénomination internes d'une organisation. De telles conventions peuvent spécifier que certains composants de nom d'annuaire soient des noms de division, de département, de projet, de machine ou de connexion.

Et les exemples qu'ils donnent, rendent assez clair que vous vouliez utiliser les entreprises nom DNS:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

Vous verrez également edu. et net. paquets également in the wild, bien qu'ils soient moins communs.

+0

Et si la société change de domaine? –

+3

@LeonardoRaele Généralement dans ce cas, vous entrez dans un monde de douleur ;-) Plus sérieusement, il existe deux options, renommez toutes les classes, qui peuvent fonctionner si le code est interne de toute façon, ou laissez-le en utilisant l'ancien nom, car cela probablement encore être unique de toute façon. –

+1

Quelle est la meilleure convention de dénomination pour quand vous ne faites pas partie d'une organisation ou n'avez pas un site Web? J'ai vu 'me.username' suggéré auparavant mais je ne suis pas sûr que ce soit le meilleur ou le seul standard. –

7

Habituellement com est utilisé par les entreprises lors de la désignation des packages, com étant suivi par le nom de l'entreprise. Par exemple vous avez les paquets com.sun dans la JVM.

Le préfixe de package org est principalement utilisé par les organismes sans but lucratif ou pour le code open source, comme apache, w3c, etc.

+0

La convention d'utiliser l'adresse URL d'un comapany .com pour le code interne et .org pour tout code rendu public est une bonne idée. C'est ce que j'ai résumé de cette réponse. – Dennis

+2

Dennis, je ne pense pas que ce serait une bonne idée. Cela signifie que la publication du code changerait les noms des paquets et casserait le logiciel interne qui utilise les noms d'origine. En outre, il y aurait une collision d'espace de noms si example.com et example.org sont la propriété de différentes sociétés et les deux veulent libérer du code Java. – proski

1

Voir Oracle doc pour le paquet nommant

Voir Naming Conventions pour la classe/Interface/annotations/standard etc nommant

nom du package

et classe syntaxe standard:
< votre domaine re verset>. < nom du projet>. < controller/dao/service/handlers etc>.< votre classe>

example1: (ici domaine: - "stackoverflow.com", projet: - "Test")
com.stackoverfllow.test.handler.TestHandler

: (ici example2 domaine: - "www.google.co.in", projet: - "Mon Proj")
in.co.google.myproj.controller.MainController

mais pour les domaines réservés comme java. *, Javax. *, Le soleil. *, Etc., vous devriez obtenir la permission de la communauté oracle

Questions connexes