Open augustobreno opened 9 years ago
A classe CrudFacadeBase poderia fazer uso de "template methods" para disponibilizar pontos de extensão padrões para a validação de regras de negócio. Segue uma proposta:
CrudFacadeBase { protected void validateSave(Entity) {} protected void validateInsert(Entity) {} protected void validateUpdate(Entity) {} protected void validateRemove(Entity) {} protected void doRemove(Entity) { // remove } public ... remove(Entity) { validateRemove(); doRemove(); } protected void doSave(Entity) { // remove } public ... save(Entity) { validateSave(entity); if (entity.getId() == null) { validateInsert(entity); } else { validateUpdate(entity); } doSave(); } }
A classe CrudFacadeBase poderia fazer uso de "template methods" para disponibilizar pontos de extensão padrões para a validação de regras de negócio. Segue uma proposta: