Paquetes

En este tema vamos a explicar como se han organizado todas las clases de un proyecto.

Siempre habrá diversas formas de organizar las clases en paquetes pero lo importante de separar las clases en paquetes es que sean fáciles de encontrar y que quede mantenible si quitamos clases o las añadimos , etc.

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 llamarse dominio 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 paquetes dominio y persistencia

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.

1) Para seguir la norma de los paquetes java debería ser com.fpmislata.ejemplo04, ya que los paquetes Java siempre deben empezar por el dominio de nuestra empresa o el dominio de nuestro poryecto
unidades/07_arquitectura/04_paquetes.txt · Última modificación: 2016/07/03 20:35 (editor externo)
Ir hasta arriba
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0