25/07/2024 - GrandfatherCoder ha scritto:
Se le Entities corrispondono ai modelli di un framework wev, cosa sono i Services?
In linea generale, quelli che qui vengono chiamati “Services” sono tutto ciò che rappresenta una implementazione specifica (di un servizio).
Ad esempio, una classe che implementa l'invio di e-mail, una classe che implementa lo storage di entità (Entities), una classe che fornisce una configurazione, in breve tutto ciò che non appartiene alla “logica di business principale” (dominio) ma che invece fornisce il supporto a una funzionalità che si potrebbe ritenere “pluggabile”; infatti, nell'esempio c'è una interfaccia IArticlesService, che rappresenta il “contratto” a cui deve sottostare quel determinato servizio, e la classe TArticlesService che lo va a implementare a tutti gli effetti (ma si potrebbero avere N altre implementazioni oltre a quella).
La scelta del nome “TxxxService” in genere non è una buona idea, perché non indica cosa fa quel servizio: una classe con nome TMailService ti suggerisce un “servizio che riguarda mail”, mentre TMailSender è molto più esplicativo e preciso; in questo contesto, viene usato questo nome generico perché siamo in un contesto esemplificativo e dimostrativo.
A che serve tutto questo? Che vantaggi da? Innumerevoli… E si tratta di concetti non specificatamente legati a DMVC, in questo caso.
Puoi approfondire il tema anche in questo webinar, dove si parla di principi SOLID, proprio per spiegare il senso di queste architetture e il ruolo dei vari attori.