Partiamo da zero. Prima di tutto, cos'è davvero l'astrazione?
Il problema / motivo
Quando programmi, spesso devi risolvere problemi molto dettagliati.
Il motivo principale per l'astrazione è quando potresti trovarti in una situazione in cui il tuo programma gestisce l'intero problema come una singola unità, con molte piccole peculiarità discrete che richiedono attenzione e comprensione. Il problema qui è che è difficile per gli esseri umani gestire una così grande quantità di dati contemporaneamente.
La soluzione: astrazione
Affinché tu possa capire esattamente ciò che è necessario per implementare la tua idea , estrai soluzioni dettagliate in astrazioni semplificate .
Ad esempio, diamo un'occhiata a ORM (Object-Relational Mapping), in cui SQL viene estratto in oggetti.
Per inserire un nuovo elemento in un database senza astrazioni, un programmatore deve conoscere SQL. Quindi per inserire un nuovo elemento un programmatore deve ricordare la sintassi SQL per inserire un nuovo elemento in una tabella:
INSERT INTO Items (field1, field2) VALUES (value1, value2)
Ma con le astrazioni, il programmatore deve solo essere consapevole dell'idea di ciò che desidera fare. Un'astrazione orientata agli oggetti potrebbe apparire come:
Item item = new Item(value1, value2)
Puoi anche andare un po 'oltre e pensare al fatto che SQL stesso è un'enorme astrazione per tonnellate di sofisticate strutture e algoritmi di archiviazione dei dati, che sono completamente a portata di mano per il prezzo dell'apprendimento di un semplice linguaggio dichiarativo.
L'opposto dell'astrazione
Sulla base di ciò che abbiamo ora definito che l' astrazione è davvero tutto per rendere sufficiente conoscere solo il concetto per antonomasia a portata di mano, possiamo facilmente dedurre che l'opposto dell'astrazione è in realtà esoterica , in cui l'uso o la comprensione comportano avere una sorta di conoscenza specializzata di le peculiarità del soggetto.