Ho un problema con la progettazione di alcune classi semplici. Voglio quattro classi: una elimina ricorsivamente la directory, un'altra copia una dir allo stesso modo. Altri due fanno lo stesso dei primi due, ma aggiungono un comportamento osservabile: calcola pochi parametri come il tempo stimato o le percentuali di funzionamento e attivano gli osservatori. Qual è il modo migliore di progettarli?
il modo più semplice per fare questo schema:
ma ho problemi con la violazione del principio DRY nel codice che calcola percentuali e altri valori nella classe osservabile.
Posso spostare quel codice in classe astratta ma ho bisogno di estendere quella classe astratta e la classe Copy o Delete appropriata, questo è vietato in java
Ho deciso di implementare un modello di strategia ma questa uml e il mio codice hanno ancora un odore.
qual è la soluzione migliore qui, dove sono i miei errori?