Incapsulamento vs astrazione
Incapsulamento e astrazione sono due concetti diversi ma correlati che si trovano nei linguaggi OOP (Object Oriented Programming). L'incapsulamento è il concetto di combinare dati e comportamento insieme come un'unica entità. D'altra parte, l'astrazione è il processo di presentazione di come un'entità si comporta / appare in contrapposizione a come viene implementata.
Cos'è l'incapsulamento?
L'incapsulamento è il processo di avvolgimento dei dati e delle operazioni che operano su di essi in una singola entità. Ciò significa essenzialmente che per accedere ai dati, è necessario utilizzare alcuni metodi predefiniti. In altre parole, i dati incapsulati non sono direttamente accessibili. Ciò garantisce che l'integrità dei dati sia preservata perché l'utente non è in grado di accedere e modificare direttamente i dati come desidera. Gli utenti otterranno o imposteranno i valori dei dati solo tramite i metodi che sono pubblicamente disponibili per gli utenti. Questi metodi di solito forniscono la convalida dei dati in modo che solo i dati nel formato appropriato possano essere inseriti nei campi. Pertanto, i vantaggi dell'incapsulamento sono triplici. Tramite l'incapsulamento, il programmatore può rendere i campi di una classe di sola lettura o di sola scrittura. Secondo,una classe può avere il controllo totale su ciò che è memorizzato nei suoi campi. Infine, gli utenti di una classe non devono preoccuparsi di come vengono archiviati i suoi dati. In Java, il programmatore può dichiarare private tutte le variabili d'istanza e fornire metodi get e set (che sono pubblici) per accedere e modificare i campi privati.
Cos'è l'astrazione?
L'astrazione è il processo di separazione dei dettagli della presentazione dai dettagli dell'implementazione. Questo viene fatto in modo che lo sviluppatore sia sollevato dai dettagli di implementazione più complessi. Invece, il programmatore può concentrarsi sulla presentazione o sui dettagli comportamentali dell'entità. In termini semplici, l'astrazione si concentra su come una certa entità può essere utilizzata piuttosto che su come viene implementata. L'astrazione essenzialmente nasconde i dettagli di implementazione, in modo che anche se la metodologia di implementazione cambia nel tempo, il programmatore non dovrebbe preoccuparsi di come potrebbe influenzare il suo programma. Un sistema può essere astratto in diversi strati o livelli. Ad esempio, i livelli di astrazione di basso livello riveleranno i dettagli dell'hardware, mentre l'astrazione di alto livello rivelerà solo la logica di business dell'entità. Il termine astrazione può essere usato per riferirsi sia a un'entità che a un processo e questo porta a una certa confusione. Come processo, astrazione significa estrarre dettagli essenziali ignorando i dettagli non essenziali di un elemento o un gruppo di elementi, mentre come entità, astrazione significa un modello o una vista di un'entità con solo i dettagli essenziali. In Java, il programmatore può utilizzare la parola chiave abstract per dichiarare una classe come entità astratta, che rappresenta le caratteristiche di definizione essenziali di un'entità del mondo reale.il programmatore può utilizzare la parola chiave abstract per dichiarare una classe come un'entità astratta, che rappresenta le caratteristiche di definizione essenziali di un'entità del mondo reale.il programmatore può utilizzare la parola chiave abstract per dichiarare una classe come un'entità astratta, che rappresenta le caratteristiche distintive essenziali di un'entità del mondo reale.
Qual è la differenza tra Encapsulation e Abstraction?
Anche se incapsulamento e astrazione sono concetti altamente correlati trovati nei linguaggi di programmazione orientata agli oggetti, presentano differenze fondamentali. L'astrazione è una tecnica che ci aiuta a identificare cosa dovrebbe essere visibile e cosa dovrebbe essere nascosto. L'incapsulamento è la tecnica per impacchettare le informazioni in modo tale da rendere visibile ciò che dovrebbe essere visibile e nascondere ciò che dovrebbe essere nascosto. In altre parole, l'incapsulamento può essere identificato come un passo oltre l'astrazione. Mentre l'astrazione riduce un oggetto del mondo reale alle sue caratteristiche di definizione essenziali, l'incapsulamento estende questa idea modellando e collegando questa funzionalità di quell'entità.