Iniziamo da zero. Prima di tutto, cos'è davvero l'astrazione?
Il problema / motivo
Quando si programma, spesso si devono 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à che richiedono attenzione e comprensione. Il problema qui è che è difficile per gli esseri umani gestire così enormi quantità di dati contemporaneamente.
La soluzione: astrazione
Affinché tu possa capire solo ciò di cui hai bisogno per attuare la tua idea , estrai soluzioni dettagliate in astrazioni semplificate .
Per esempio, diamo un'occhiata a ORM (Object-Relational Mapping), dove SQL è astratto 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 della idea di ciò che desidera fare. Un'astrazione orientata agli oggetti potrebbe essere simile a:
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 di imparare un semplice linguaggio dichiarativo.
The Opposite of Abstraction
Sulla base di ciò che ora abbiamo definito che astrazione è in realtà sufficiente a rendere sufficiente conoscere solo il concetto per eccellenza, possiamo facilmente dedurre che il contrario di astrazione è in effetti esoterica , in cui l'uso o la comprensione comporta una sorta di conoscenza specializzata delle peculiarità del soggetto.