La reusabilidad viene en varios sabores, el peor de ellos es el copy/paste o el mueve_este_archivo_y_vuelvelo_a_usar, y el mejor de los sabores es el usa_este_modulo. Para obtener este último sabor se debe considerar cuantos proyectos (módulos) debe tener uno. Yo recomiendo por lo menos 2 (aún cuando uno programa algo tan sencillo como un “casi Hola Mundo”), uno para la capa de presentación (Vista y controladores con un “cliente del modelo”) y otro con el Modelo, que incluye la Lógia de Megocios y los DAOs
Normalmente se necesitará una Façade -Una Façade (o Fachada) es un objeto que recibe peticiones (en este caso para CUALQUIERA de los “métodos” de la Lógica de Negocios) y los redirige al objeto correcto que puede resolver dicha petición (En este caso un Objeto de Lógica de Negocios) y puede ser publicada despues como un Web Service o usado por cualquier otra capa de presentación como JSP/JSF-. Asi pues, si uno quiere “aislar” la Façade en un proyecto nuevo para poder ser reutilizado por otro proyecto similar definitivamente tendría que ser otro módulo o proyecto (piensen en un banco que tiene diferentes políticas de impuestos dependiente del sistema y el país donde se acceda al sistema; cada sistema y país tendrían sus propios objetos de negocio de acuerdo a las especificaciones de la Fachada).
Generalmente cuando uno habla de modularidad encontramos buenas razones para hacer más y más módulos cada vez, les recomiendo leer el refcard http://refcardz.dzone.com/refcardz/patterns-modular-architecture.
La siguiente entrada será sobre un diseño de UI basado en un escenario complejo de manera que podamos utilizar FXML y sus controlers, debo disculparme por estas dos partes de introducción “teóricas” que habla principalmente de patrones.
Saludos y hasta la siguiente.