Ho esaminato molte teorie su ciò che è l'incapsulamento e le tre tecniche di implementazione, che sono Associazione, Aggregazione e Composizione.
Encapsulation
L'incapsulamento è la tecnica per rendere privati i campi di una classe e fornire l'accesso ai campi tramite metodi pubblici. Se un campo è dichiarato privato, non è accessibile a nessuno al di fuori della classe, nascondendo quindi i campi all'interno della classe. Per questo motivo, l'incapsulamento viene anche definito come occultamento dei dati.
L'incapsulamento può essere descritto come una barriera protettiva che impedisce al codice e ai dati di accedere in modo casuale a un altro codice definito al di fuori della classe. L'accesso ai dati e al codice è strettamente controllato da un'interfaccia.
Il vantaggio principale dell'incapsulamento è la possibilità di modificare il codice implementato senza violare il codice di altri utenti che utilizzano il nostro codice. Con questa funzione Encapsulation offre 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 c'è proprietario. Facciamo un esempio di insegnante e studente. Più studenti possono associarsi a un singolo insegnante e un singolo studente può associarsi a più insegnanti, ma non vi è alcuna proprietà tra gli oggetti ed entrambi hanno il loro ciclo di vita. Entrambi possono creare ed eliminare indipendentemente.
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. Prendiamo un esempio di Dipartimento e insegnante. Un singolo insegnante non può appartenere a più reparti, ma se cancelliamo il dipartimento l'oggetto insegnante non verrà distrutto. Possiamo considerarlo come una relazione "ha-a".
Composizione
La composizione è ancora una forma specializzata di Aggregazione e possiamo chiamarla una relazione di "morte". È un tipo strong di Aggregazione. L'oggetto figlio non ha il loro ciclo di vita e se l'oggetto genitore cancella anche tutti gli oggetti figlio verranno cancellati. 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 reali. Sto cercando una descrizione su come utilizzare queste tecniche nel codice effettivo della classe. Intendo che senso ha usare tre tecniche diverse per l'incapsulamento , come queste tecniche potrebbero essere implementate e come scegliere quale tecnica è applicabile al momento.