com.fpmislata.ejemplo04
, ya que los paquetes Java siempre deben empezar por el dominio de nuestra empresa o el dominio de nuestro poryecto Paquetes
En este tema vamos a explicar como se han organizado todas las clases de un proyecto.
Otro factor que ayuda a decidirnos sobre los paquetes , es el número de clases. Hay veces que para una sola clase no merece la pena crear un nuevo paquete pero cuando van creciendo en número es preferible crear el nuevo paquete.
En la siguiente carpeta vemos como hemos organizado en paquetes las principales clases de un proyecto.
Hay dos paquetes principales:
com.fpmislata.persistencia
: Aquí pondremos todas la clases relacionadas con la persistencia pero que reutilizamos en los diversos proyectos.ejemplo04
1): Aquí ponemos las clases que son específicas de nuestro proyecto.
Es decir hemos hecho una división muy clara , la clases que reutilizamos vs las clases del proyecto.
com.fpmislata.persistencia
Dentro del paquete com.fpmislata.persistencia
hay 3 paquetes:
com.fpmislata.persistencia.dao
: Tiene todo los relacionado con el interfaz DAO.com.fpmislata.persistencia.dao.impl
: Contiene la implementación genérica del interfaz DAO.com.fpmislata.persistencia.hibernate
: Contiene la clase de utilidad de Hibernate .
Si hubiéramos creado más anotaciones además de la anotación Caption
se debería crear el paquete com.fpmislata.persistencia.anotaciones
pero como solo tenemos una y está relacionada con las clases DAO se ha preferido dejarla en com.fpmislata.persistencia.dao
.
ejemplo04
Dentro del paquete ejemplo04
hay 4 paquetes:
ejemplo04.dominio
: Al llamarsedominio
aquí es donde estarán todas las clases de dominio de nuestra aplicación.ejemplo04.persistencia.dao
: Estarán los interfaces de nuestras clases DAO.Esto será público para el resto de la aplicación.ejemplo04.persistencia.dao.impl
: Son las implementaciones de los interfaces anteriores. Aqui si hubiera muchas clases y diversas implementaciones de cada interfaz podríamos hacer incluso subpaquetes según las implementaciones.impl.hibernate
,impl.jdbc
, etc. También incluimos los ficheros.hbm.xml
de las clases de dominio ya que están relacionados con las implementaciones. Aunque sería también muy razonable haber tenido un paquete exclusivo para ellos.ejemplo04.presentacion
: Todo lo relacionado con la capa de presentación. En caso de hacer una aplicación web, esta capa de modificaría totalmente para adecuarla a la web sin tener que modificar lo paquetesdominio
ypersistencia
Hemos separado los ficheros .hbm.xml
y las clases de dominio , ya que las clases de dominio no deben saber nada de como se persisten. De esa forma si cambiamos la forma de persistir las clases de dominio (por ejemplo usando JDBC) no sería necesario tocar nada del paquete ejemplo04.dominio
.
También hemos separado los interfaces DAO de sus implementaciones con los paquetes ejemplo04.persistencia.dao
y ejemplo04.persistencia.dao.impl
.