Ho una classe chiamata Change
che dovrebbe essere astratta e avere alcuni metodi di base.
Ho classi Insert
, Update
e Delete
che estende Change
.
Nel caso di Insert
, Update
io uso solo estendi e aggiungo no logic !
public class Insert extends Change {}
Nella classe Delete
ho un metodo extra che non esiste nella classe Change
(che è la classe astratta base).
Sembra un design errato, che ho classi come Insert
e Update
che si estendono da Change
ma non fanno nulla (nessuna logica in queste classi).
Cosa pensi? quale dovrebbe essere la gerarchia?
Modifica
C'è un endpoint nel servizio che restituisce un oggetto denominato ChangedEntities
e il consumatore di questo endpoint che è un altro servizio utilizza questo endpoint per inserire / aggiornare / eliminare entità nel DB.
Quindi il consumatore di questo endpoint ottiene,
public class ChangedEntities {
private Insert inserations;
private Update updates;
private Delete deletions;
}
public class Change {
private List<Entity> entities = new ArrayList();
public void addEntity(Entity entity) {
entities.add(entity);
// the logic is more complex and is common to insert/update/delete
}
}
public class Insert extends Change {}
public class Delete extends Change {
public void logDeletion() {
System.out.println("Deleted successfully");
// this should be some complex method
}
}