2011-09-14 28 views
21

Duplicar posibles:
Java packages com and orgJava convenciones de nomenclatura de paquete

Soy un desarrollador de Java, hoy en día estoy puntales el aprendizaje y la lectura de un tutorial de una curiosidad entrometió en mi mente con respecto

package com.something.something;

Sé que es una declaración muy simple paquete, pero ¿qué pasa con

paquete com .something.something;

Este fragmento de nombre de paquete a menudo viene en muchas distribuciones comerciales. Ahora quiero saber qué significa? Por favor aclararlo.

Gracias y lo siento si yo no podía aclararlo ...

+0

Si solicita ponemos com antes de que el nombre del paquete, entonces la respuesta es simplemente la convención ninguna otra razón. Algunas personas dicen que es inversa al espacio de nombres URL o XML, pero no es nada más que una convención. – Shahzeb

+0

En realidad, debe seguir lo que otros dicen de abajo ... –

+0

si ha escrito una sola clase cada vez que se sabe que esto no nombre de dominio en el que, ya que puede ser por lo que podría ser su surname.lastname. Sun-Oracle y la documentación pueden decir lo que cada vez se sienten approperiate pero cuando me paso el día a día el tiempo creando classess sé que casi nunca son de dominio names.try cabo org.apache.commons o commons.apache.org y dime cómo lo hace su página de bienvenida parece. – Shahzeb

Respuesta

22

Es solo una definición de espacio de nombres para evitar la colisión de nombres de clases. El com.domain.package.Class es una convención establecida de Java en la que el espacio de nombres se califica con el dominio de la compañía en reversa.

+0

Documentos relacionados: http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html –

+2

¿Qué debo hacer si no tengo mi propio dominio? –

+1

@StephenHolt Si su código es de código abierto y está alojado en un repositorio público, existe una tendencia popular de usar el dominio del repositorio de control de origen. Por ejemplo, muchos proyectos populares todavía usan 'net.sourceforge' o' net.sf' seguido de sus nombres de proyecto. En la actualidad, GiHub y GitLab proporcionan alojamiento web estático para sus proyectos en 'project.gihub.io' y' project.gitlab.io', por lo que puede ser otra opción para explorar. – Mrinal

6

Es el nombre de dominio explicado a la inversa.

Por ejemplo, uno de mis dominios es hedgee.com. Entonces, uso com.hedgee como el nombre base de todos mis paquetes.

2
  • com =>
  • dominio
  • nombre de algo =>
  • empresa
  • algo name => paquete principal

Por ejemplo: com.paresh.mainpackage

empresas utilizan sus revertido a Internet nombre de dominio para comenzar sus nombres de paquete; por ejemplo, com.example.mypackage para un paquete llamado mypackage creado por un programador en example.com. Esta información la he encontrado en http://download.oracle.com/javase/tutorial/java/package/namingpkgs.html

+2

Esta respuesta es falta la relación muy importante con los nombres de dominio registrados. Eso es lo que * garantiza * que el nombre de su paquete sea único. –

24

Wikipedia, de todas partes, actually discusses this.

La idea es asegurarse de que todos los nombres de los paquetes sean únicos en todo el mundo, haciendo que los autores utilicen una variante del nombre DNS que poseen para nombrar el paquete.Por ejemplo, los propietarios del nombre de dominio joda.org crearon una serie de paquetes cuyos nombres comienzan con org.joda, por ejemplo:

  • org.joda.time
  • org.joda.time.base
  • org.joda.time.chrono
  • org.joda.time.convert
  • org.joda.time.field
  • org.joda.time.format
2

Desde el artículo de Wikipedia sobre Java package naming:

En general, el nombre del paquete comienza con el nombre de dominio de primer nivel de la organización y luego dominio de la organización y luego los subdominios, que se enumeran en orden inverso. La organización puede elegir un nombre específico para su paquete. Los nombres de los paquetes deben ser todos minúsculos siempre que sea posible.
Por ejemplo, si una organización en Canadá llamado Mysoft crea un paquete para hacer frente a las fracciones, nombrando a los ca.mysoft.fractions paquete distingue el paquete fracciones de otro paquete similar creado por otra empresa. Si una empresa estadounidense llamada MySoft también crea un paquete de fracciones, pero lo nombra us.mysoft.fractions, las clases en estos dos paquetes se definen en un espacio de nombres único e independiente.
1

Esto es lo que Sun-Oracle documentation dice:

Los nombres de paquetes se escriben en minúsculas para evitar conflictos con los nombres de las clases o interfaces.

Las empresas usan su nombre de dominio de Internet revertido para comenzar sus nombres de paquete; por ejemplo, com.example.mypackage para un paquete llamado mypackage creado por un programador en example.com.

Cuestiones relacionadas