Herramientas de usuario

Herramientas del sitio


unidades:07_arquitectura:04_paquetes
no way to compare when less than two revisions

Diferencias

Muestra las diferencias entre dos versiones de la página.


unidades:07_arquitectura:04_paquetes [2023/04/07 21:26] (actual) – creado - editor externo 127.0.0.1
Línea 1: Línea 1:
 +====== Paquetes ======
 +En este tema vamos a explicar como se han organizado todas las clases de un proyecto. 
  
 +<note tip>
 +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.
 +</note>
 +
 +En la siguiente carpeta vemos como hemos organizado en paquetes las principales clases de un proyecto.
 +
 +{{:unidades:07_arquitectura:paquetes.png?nolink|}}
 +
 +Hay dos paquetes principales:
 +  * ''com.fpmislata.persistencia'' : Aquí pondremos todas la clases relacionadas con la persistencia pero que reutilizamos en los diversos proyectos. 
 +  * ''ejemplo04'' (( 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 )): 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''. \\ 
unidades/07_arquitectura/04_paquetes.txt · Última modificación: 2023/04/07 21:26 por 127.0.0.1