Commençons à zéro. Tout d'abord, qu'est-ce que l'abstraction?
Le problème / motif
Lorsque vous programmez, vous devez souvent résoudre des problèmes très précis et détaillés.
Le motif principal de l'abstraction est lorsque vous vous retrouvez dans une situation où votre programme traite l'ensemble du problème comme une seule unité, avec de nombreuses petites particularités discrètes qui nécessitent attention et compréhension. Le problème ici est qu'il est difficile pour les êtres humains de gérer de telles quantités de données à la fois.
La solution: l'abstraction
Afin que vous puissiez comprendre exactement ce dont vous avez besoin pour mettre en œuvre votre idée , vous extrayez des solutions détaillées dans des abstractions simplifiées .
Par exemple, regardons ORM (Object-Relational Mapping), où SQL est abstrait en objets.
Afin d'insérer un nouvel élément dans une base de données sans abstractions, un programmeur doit connaître SQL. Ainsi, pour insérer un nouvel élément, un programmeur doit se souvenir de la syntaxe SQL pour insérer un nouvel élément dans une table:
INSERT INTO Items (field1, field2) VALUES (value1, value2)
Mais avec les abstractions, le programmeur n'a qu'à être conscient de l' idée de ce qu'il souhaite faire. Une abstraction orientée objet pourrait ressembler à:
Item item = new Item(value1, value2)
Vous pouvez même aller un peu plus loin et penser au fait que SQL lui-même est une énorme abstraction pour des tonnes de structures et d'algorithmes de stockage de données sophistiqués, qui sont entièrement à votre portée pour le prix de l'apprentissage d'un langage déclaratif simple.
L'opposé de l'abstraction
Sur la base de ce que nous avons maintenant défini que l' abstraction consiste vraiment à rendre suffisant de ne connaître que le concept par excellence, nous pouvons facilement en déduire que l'opposé de l' abstraction est en fait l' ésotérique , où l'utilisation ou la compréhension implique d'avoir une sorte de connaissance spécialisée de les particularités du sujet.