Prendi una classe utente e l'idea che un utente debba essere profilato. Vedo quattro modi per gestire questo:
-
Scrivi il codice per il profilo nella classe User. Lo accuso subito.
-
Crea una classe Profile e rendila una proprietà della classe User.
-
Scrivi una classe utente (con il nome della piastra della caldaia, roba dell'indirizzo), scrivi una classe Profilo, e scrivi una classe UserProfile - UserProfile è l'unione di Utente e Profilo.
-
Scrivi una classe utente e una classe profilo che abbiano ciascuna una proprietà ID e consentano all'ID di agire come l'intersezione. In questo modo l'utente e il profilo sono indipendenti e un'altra classe, forse una classe astratta con nient'altro che metodi statici gestisce la logica che descrive la connessione.
Le scelte 3 e 4 richiedono ciascuna almeno tre classi. Per questo caso, qual è la scelta migliore? Se è possibile generalizzare questo, generalmente sarebbe meglio usare una di queste possibilità?