2010-01-23 12 views

Respuesta

42

También puede ver nombres de paquetes como nombres de dominio de Internet invertidos (que a menudo también es cierto en el mundo real, consulte por ejemplo el org.apache.commons que se correlaciona con http://commons.apache.org). El com (commercial) y el org (organization) están aquí, en realidad son los nombres Top Level Domain.

Los nombres de los paquetes son, en general, solo para identificar al fabricante/proveedor del código que está enfrentando.

+15

Y para garantizar la unicidad nombre del paquete. Creo que es una manera bastante inteligente de hacerlo –

+0

Puedo estar equivocado, pero com parece innecesario en este momento si todos lo van a usar. Prefiero usar el nombre de la compañía solo. Prefiero el sistema de nombres que tienen para otros sistemas de empaque como npm y compositor. Usan 'username/packageName' o algo similar. Así que nombraría mis paquetes en Java como 'username.packagename' – OzzyTheGiant

85

De acuerdo con Sun, los paquetes deben tener un espacio de nombres según el inverso de su nombre de dominio, y luego debe seguir lo que considere oportuno. La mayoría de las empresas u organizaciones tienen un nombre de dominio .com o .org, y por lo tanto la mayoría de los paquetes comienzan con com. o org.. Citando el Sun Code Conventions:

El prefijo del nombre de un paquete único siempre está escrito en letras ASCII en minúsculas y debe ser uno de los nombres de dominio de nivel superior, actualmente com, edu, gov, mil, neto , org, o uno de los códigos ingleses de dos letras que identifican países como se especifica en la norma ISO 3166, 1981.

Los siguientes componentes del nombre del paquete varían de acuerdo con las convenciones internas de nomenclatura de una organización. Tales convenciones pueden especificar que ciertos componentes del nombre de directorio sean nombres de división, departamento, proyecto, máquina o inicio de sesión.

Y los ejemplos que se dan, hacen que sea bastante claro que le significan para utilizar el nombre DNS empresas:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

también verá edu. y net. empaqueta in the wild también, aunque son menos comunes.

+0

¿Qué pasa si la empresa cambia de dominio? –

+3

@LeonardoRaele Normalmente en este caso, ingresas a un mundo de dolor ;-) Más en serio, hay dos opciones, cambiar el nombre de todas las clases, que puede funcionar si el código es interno de todos modos, o dejarlo usando el nombre anterior, ya que eso probablemente todavía sea único de todos modos. –

+1

¿Cuál es la mejor convención de nombres para cuando no eres parte de una organización o no tienes un sitio web? He visto 'me.username' antes, pero no estoy seguro de si ese es el mejor o el único estándar. –

7

Normalmente, las empresas utilizan com al nombrar los paquetes, com seguido del nombre de la empresa. Por ejemplo, tiene los paquetes com.sun en la JVM.

El prefijo org paquete es utilizado principalmente por organizaciones sin ánimo de lucro o para el código fuente abierto, como Apache, el W3C, etc.

+0

La convención de usar una .com .com de comapany para el código interno y .org para cualquier código hecho público es una buena idea. Eso es lo que resumí de esta respuesta. – Dennis

+2

Dennis, no creo que sea una buena idea. Significa que liberar el código cambiaría los nombres de los paquetes y rompería el software interno que está usando los nombres originales. Además, habría una colisión en el espacio de nombres si example.com y example.org son propiedad de diferentes compañías y ambos desean liberar el código de Java. – proski

1

Ver Oracle doc de nomenclatura de paquete de

Ver Naming Conventions para la clase/interfaz/anotaciones/etc denominación estándar

nombre del paquete y la sintaxis estándar de la clase:
< su dominio en el restablecimiento verso>. < nombre del proyecto>. < controller/dao/service/handlers etc>.< su clase>

Ejemplo 1: (en este dominio: - "stackoverflow.com", proyecto: - "Test")
com.stackoverfllow.test.handler.TestHandler

Ejemplo 2:

(aquí de dominio: - "www.google.co.in", proyecto: - "Mi Proj")
in.co.google.myproj.controller.MainController

pero para dominios reservados como Java. *, Javax. *, Sol. *, Etc Usted debe obtener el permiso de la comunidad Oracle

Cuestiones relacionadas