Ciao ingegneri del software,
Quindi sono un programmatore. Non un "ingegnere". Quando faccio OOP, per lo più creo classi e interfacce nel modo che voglio. Non seguo alcun modello di design ... MA ora, non solo voglio migliorare ma ho anche bisogno di scrivere un software che non sarà gestito da me ...
Ho letto questo libro un metodo per organizzare le lezioni. Dicono che, per i tuoi dati, dividi l'applicazione nei seguenti livelli: Dominio (o Modello); Persistenza (o repository) e servizio.
-
Quindi il dominio contiene fondamentalmente classi POJO. All'interno del Dominio, c'è un altro pacchetto per il Repository (le sue interfacce e le loro implementazioni)
-
Il servizio contiene le interfacce e le loro implementazioni MA qui, le classi di implementazione dei servizi chiamano oggetti del repository e tipo di ripetere i loro metodi . Ma hanno anche detto che più la logica aziendale è complessa, altri metodi possono essere aggiunti alle classi di servizio. Quindi il repository è solo per CRUD e il servizio è lì per dare accesso a CRUD + in base alla logica aziendale ...
L'ho capito bene? Ma perché usano tutte quelle interfacce? Solo implementazioni sarebbero sufficienti, a mio avviso. Perché assomiglia a DAO? L'unica differenza qui è che non vedo dove può essere adattata l'implementazione di un database diverso come fa DAO factory ...
Puoi aiutarmi a capire meglio il dominio, la persistenza, l'architettura dei servizi?