Si tratta di una progettazione di oggetto valida? Ho un oggetto dominio in cui inietto un servizio e chiamo un metodo di verifica per aggiornare lo stato dell'oggetto e se tutto va bene invia un messaggio di conferma. Il codice è simile a:Incapsulamento di una chiamata di servizio all'interno di un metodo di un oggetto dominio
class Foo {
String bar
Service emailService
public boolean verify() {
bar = "foo"
if(this.save()) {
emailService.sendConfirmation()
}
}
}
Foo.get(1).verify()
È accettabile chiamare il servizio di posta elettronica in tale distanza? c'è un modello di design che posso seguire per utilizzare una situazione del genere.
Grazie - Ken
Direi che dovresti codificare un'interfaccia qui. Ciò renderà la tua entità testabile e sarà facile cambiare il servizio se necessario. ** public bool verificare (IConfirmationService emailService) ... ** –
mi piace molto il modello di dominio degli eventi e piaciuto leggere l'articolo Udi Dahan e soprattutto i commenti e le sue risposte a loro. Sono anche dell'opinione che la tecnica di doppia spedizione debba essere utilizzata quando la tecnica degli eventi di dominio non risolve il problema in questione.Hai anche fatto notare il localizzatore di servizi che ritengo personalmente siano malvagi in quanto fornisce un falso senso di incapsulamento. Fa anche provare l'inferno. Grazie per voi intuizioni e risposte. – ken