Attualmente, ho un sistema con un Data Mapper e più oggetti di dominio che ereditano dalla stessa classe, diciamo B e C che ereditano dalla classe astratta A.
Per recuperare i dati, ho bisogno di passare un parametro all'interfaccia dati (getObject ('a'), getObject ('b')), in base ai dati restituiti per la classe B o la classe C. Quindi, il Data Mapper utilizza una classe Factory per creare l'oggetto corretto in base ad alcuni parametri (provenienti dai dati stessi).
La classe B e la classe C differiscono solo nell'implementazione di un metodo, il resto è ereditato dalla classe A.
Ho qualche dubbio su questo, sembra imperfetto ma non riesco a capire un modo migliore di farlo. I punti sono:
- L'ereditarietà è un buon metodo per implementare entità diverse che differiscono nel concetto ma solo in misura minima?
- La classe factory è un buon modo per restituire l'oggetto dominio corretto?
- Il consumo del data mapper con un parametro sembra sbagliato, c'è un modo migliore per farlo? Sarebbe meglio l'uso dell'astrazione?
Spero di averlo spiegato abbastanza chiaramente, altrimenti sarei felice di chiarirlo.