In base a DDD e l'architettura pulita , le entità dovrebbero incapsulare i dati e la logica correlata.
Quindi, come si progetta una classe per rappresentare una particolare entità del mondo reale?
Due alternative tra molte delle possibili strategie:
-
In primo luogo, definisci le proprietà dell'entità (chiedi quali informazioni devono essere memorizzate). Quindi creare getter / setter richiesti. Trova associazioni con altre entità. Infine aggiungi le operazioni per la logica di business extra.
-
In primo luogo, definisci quali informazioni deve fornire l'entità (progetta un'interfaccia che includa solo i getter). Quindi decidere come la classe fornisce le informazioni richieste. (Implementa l'interfaccia e aggiungi alcune operazioni con effetti collaterali.) Puoi creare proprietà e setter, puoi calcolare i valori di ritorno. (Crea un'operazione pubblica calcolando le informazioni desiderate), ecc.
Ad esempio, consideriamo l'entità Studente. Ha nome, id, ecc. Uno studente frequenta alcuni corsi. Si iscrive ai corsi con alcune limitazioni e prende voti. Vuoi ottenere la sua trascrizione accademica.
Ora, come inizi a scrivere una classe Student
. Quali sono le tue considerazioni? Come ti assicuri che la classe soddisfi i requisiti?