Persistenza L'ignoranza è un'applicazione del principio della singola responsabilità, che in pratica significa che gli oggetti di dominio ( DO ) non dovrebbero contenere codice relativo alla persistenza, ma dovrebbero contenere solo la logica del dominio.
a) Presumo che ciò significhi che il codice che contatta i livelli inferiori (ovvero i livelli di persistenza) vive al di fuori del modello di dominio in altre classi ( OC ) di un livello di logica aziendale?
b) Se la mia ipotesi in a) è corretta, allora DO , diciamo Customer
, non contiene mai metodi come GetCustomers
o GetCustomerByID
?
c) Se le ipotesi sotto a) e b) sono corrette, e supponendo Customer
oggetto dominio utilizza il caricamento pigro per alcune delle sue proprietà, poi ad un certo punto Customer
's interno mosto logica contatto OC , che a sua volta recupera deffered dati. Ma se è Customer
necessario contattare OC per ricevere dati non validi, non possiamo davvero affermare che gli oggetti di dominio non contengono una logica correlata alla persistenza ?!
Grazie
RISPOSTA A jkohlhepp
1) Presumo OrderProvider
e le CustomerProvider
classi sono contenute nel livello di logica aziendale?
2) Capisco dalla tua risposta che i miei presupposti di cui alla lettera b) sono corretti?
3)
... Vorrei verificare se un campo di ordini privati era popolato o se era nullo. Se è nullo ...
Ma per quanto ne so, non appena il codice di dominio deve verificare se il order
campo privato è stato popolato e, in caso contrario, contattando OrderProvider, stiamo già violando il principio PI ?!