Olá a todos, gostaria da ajuda de vocês para definir a arquitura de pacotes e projetos de uma aplicação.
A situação é a seguinte: estamos migrando uma aplicação Desktop para Java e na definição dos pacotes tivemos um problema. O sistema ele é todo dividido em módulos, sendo estes independentes (um executável por módulo), e devemos manter o mesmo padrão (um jar por módulo). O problema é que nossos Beans podem ser utilizados em diversos módulos, porém copiar um bean em cada módulo é uma idéia não muito interessante, então pensamos em criar um JAR com todos os beans e adicioá-la ao classpath, para que possa ser acessada em todos os módulos da aplicação.
Temos o mesmo problema com o módulo de classes utilitárias e de templates.
O que vocês acham desta abordagem? Alguma sugestão?
Mas assim, esta solução que eu dei de utilizar o JAR funciona sem problema, o que eu gostaria de saber é se esta é uma boa solução e se existe uma melhor.
Difícil responder sem conhecer os módulos e o que eles têm em comum e como tudo foi dividido (enfim, a arquitetura). Mas, pelo exposto, me parece uma boa solução sim.
A primeira sugestão é apra pensar de pensar em JAR como aplicação ou módulo executável. JARs são apenas conjunto de classes que são unidas por alguma coisa em comum.
A segunda sugestão é ler o livro de Robert C. Martin que trata extensivamente de como separar e gerenciar pacotes.
A terceira sugestão é criar um ou mais jars com essas classes, geralmente chamadas de ‘core’ ou núcleo.