Bom dia pessoal, estou lendo um livro aq Refatoração - Aperfeiçoando o Projeto de Código Existente, e está falando sobre refatoração claro, e entrou no contexto de aplicação com Banco de Dados, que geralmente é o q mais fazemos...
Aplicação comercial sempre são acopladas ao esquema de banco de dados, e é díficil de manter e refatorar essa parte...
Eu queria entender esse paragrafo:
"Em bancos de dados não orientados a objetos, uma maneira de lidar com este problema é colocar uma camada de software separada entre seu modelo de objetos e seu modelo de banco de dados. Dessa maneira você pode isolar as alterações nos dois diferentes modelos. Quando atualiza um modelo, não precisa atualizar o outro. Você apenas atualiza a camada intermediária"
Tipo vejo em EJBs q sempre tem o POJO (plain old java objects) que é a entidade que mapea no banco com os getters e setters apenas!!!!!
E geralmente nos é ensinado a fazer assim, não colocar regra de negócio na Entity etc...
No paragrafo acima ele cita essa camada intermediária, qual seria ela?
Tipo tenho a classe Aluno que mapeio ela para o banco, e a intermediária seria uma AlunoBO que teria a lógica da aplicação nela, além das AlunoDAO para acessar o BD, AlunoService para fazer alguma lógica menor e chamar a DAO
Como que seria essa arquitetura ai? Como seria essa camada intermediária ? Vejo muita gente explicando SOLID, refatoração, orientação a objeto avançada com exemplos de cálculo de imposto, calculo de salario dos funcionarios, outros calculos, e etc, mas como fica o Modelo, ou seja, a classe que executa o cálculo do salário do funcionário com o design patterns com Strategy por exemplo e a persistência ???