Hai ragione, cercando di eliminare il controllo del ciclo di vita non necessario dal tuo modello. Hai individuato l'entità in questione e controllato che è giusto avere un ciclo di vita indipendente. Quindi hai quasi risposto alla tua domanda e hai solo bisogno di una conferma sul fatto che sia una buona pratica. È un buon miglioramento del tuo modello. Sì.
Se il giocatore di poker ha mano, significa che la mano è un oggetto ?
Consente di controllarlo:
Può esistere la mano senza giocatore? Il giocatore può avere più di una mano? Il giocatore può avere una serie di mani nel tempo, ma non più di una mano alla volta? La non-esistenza della mano può essere trattata come una "mano vuota" che consente ancora l'esistenza dell'oggetto mano?
Se capisco il gioco correttamente, la mano è un attributo, non un oggetto. Player è l'unica entità, che ha un ciclo di vita. Hand è uno slot con capacità fissa, un attributo, quindi nessuna creazione o distruzione individuale è necessaria per mano, quando il giocatore è un oggetto.
Tratta il ciclo di vita degli oggetti come parte significativa del modello. L'oggetto dovrebbe essere in grado di esprimere l'esistenza di una particolare cosa X, così come null al posto dell'oggetto esprime la non esistenza di X
L'oggetto deve essere creato non prima e non oltre il particolare evento / transizione nel modello richiesto. L'oggetto deve essere distrutto esattamente con le stesse considerazioni. Se il modello contiene 2 classi correlate, in cui gli oggetti hanno cicli di vita annidati, annidano le classi, quindi si dovrebbe essere un contaner dell'altro. Se i cicli di vita di queste 2 classi corrispondono esattamente, quindi elimina i duplicati, abbassa una delle classi per essere un attributo.