Ho analizzato molte teorie su ciò che è l'incapsulamento e le tre tecniche di attuazione, che sono Associazione, Aggregazione e Composizione.
incapsulamento
L'incapsulamento è la tecnica per rendere privati i campi in una classe e fornire accesso ai campi con metodi pubblici. Se un campo viene dichiarato privato, non può accedervi da nessuno al di fuori della classe, nascondendo così i campi all'interno della classe. Per questo motivo, l'incapsulamento è anche indicato come nascondere i dati.
L'incapsulamento può essere descritto come una barriera protettiva che impedisce al codice e ai dati di accedere casualmente ad altri codici definiti al di fuori della classe. L'accesso ai dati e al codice è strettamente controllato da un'interfaccia.
Il principale vantaggio dell'incapsulamento è la possibilità di modificare il nostro codice implementato senza rompere il codice di altri che usano il nostro codice. Con questa funzione l'incapsulamento fornisce manutenibilità, flessibilità ed estensibilità al nostro codice.
Associazione
L'associazione è una relazione in cui tutti gli oggetti hanno il proprio ciclo di vita e non esiste un proprietario. Facciamo un esempio di insegnante e studente. Più studenti possono associarsi con un singolo insegnante e un singolo studente può associarsi con più insegnanti, ma non esiste alcuna proprietà tra gli oggetti ed entrambi hanno il proprio ciclo di vita. Entrambi possono creare ed eliminare in modo indipendente.
Aggregazione
L'aggregazione è una forma specializzata di associazione in cui tutti gli oggetti hanno il proprio ciclo di vita, ma esiste la proprietà e un oggetto figlio non può appartenere a un altro oggetto padre. Facciamo un esempio di dipartimento e insegnante. Un singolo insegnante non può appartenere a più dipartimenti, ma se eliminiamo il dipartimento l'oggetto insegnante non verrà distrutto. Possiamo pensarlo come una relazione "ha-a".
Composizione
La composizione è di nuovo una forma specializzata di aggregazione e possiamo definirla una relazione di "morte". È un tipo forte di aggregazione. L'oggetto figlio non ha il suo ciclo di vita e se l'oggetto padre elimina tutti gli oggetti figlio verranno eliminati. Riprendiamo un esempio di relazione tra casa e stanze. La casa può contenere più stanze ma non esiste una vita indipendente di una stanza e ogni stanza non può appartenere a due case diverse. Se cancelliamo la casa, la stanza verrà automaticamente cancellata.
La domanda è:
Ora questi sono tutti esempi del mondo reale. Sto cercando una descrizione su come utilizzare queste tecniche nel codice di classe reale. Voglio dire qual è il punto per usare tre diverse tecniche per l'incapsulamento , come queste tecniche potrebbero essere implementate e come scegliere quale tecnica è applicabile al momento.