Nel mio corso, mi è stato insegnato che, in generale, in generale, una classe B dovrebbe essere responsabile della creazione di istanze di classe A se si applica uno o preferibilmente di più:
- Le istanze di B contengono o aggregano composte istanze di A
- Istanze di istanze di record B di A
- Le istanze di B utilizzano da vicino le istanze di A
- Le istanze di B hanno le informazioni di inizializzazione per le istanze di A e le passano alla creazione.
E in alcuni casi più complessi, il posto migliore per creare un oggetto è all'interno di una classe factory.
Il mio corso non mi ha mai insegnato chi dovrebbe essere responsabile dell'eliminazione di un'istanza. Supponi di voler eliminare un'istanza di A che è stata creata in un'istanza di B. Chi cancella A? È A stesso? È B? È qualche altra classe C che ha la sola responsabilità di eliminare A?