Un guide pour débutants sur l’abstraction dans la programmation orientée objet
Lorsque vous consommez un burrito, chacun de vos récepteurs de préférences chante avec délice. Chaque bouchée génère une combinaison de différents types de goût, comme le salé, l’agréable, l’épicé et l’umami. Chaque bouchée après cela a un goût quelque peu différent car une nouvelle collection d’ingrédients associe leurs saveurs les unes aux autres.
Vous avez peut-être passé en revue les ingrédients actifs du menu, mais vous ne comprenez pas précisément comment la salsa est fabriquée. L’arôme qu’ils utilisent sur leurs légumes pourrait être un mélange secret. Cependant, vous n’avez pas besoin de connaître chaque ingrédient exact. Il suffit de comprendre que c’est succulent.
Les ingrédients que vous comprenez, comme le riz blanc nature, sont concrets. Les divers autres éléments sont abstraits. Vous savez que c’est de la salsa, mais quel genre ? Ou, si quelqu’un vous tend simplement un burrito de nulle part, alors tout le burrito est abstrait.
L’abstraction dans l’abstrait
Avec l’héritage, l’abstraction est un principe crucial dans les émissions orientées objet. Le concept est que chaque chose doit fournir des résultats de base ainsi que prévisibles. Les éléments doivent également partager uniquement ce qui doit être partagé.
L’abstraction cache le code et les données lorsque cela est approprié
Vous pouvez considérer un burrito comme une chose. À l’intérieur du burrito, vous avez de nombreux autres articles, comme des haricots, du riz, du fromage et aussi de la sauce piquante. Les haricots auraient pu être qualifiés. La célébrité pourrait être un mélange. Et la sauce piquante peut être un mélange de piments mûris au vinaigre.
Vous n’avez pas besoin de savoir exactement comment tous les ingrédients actifs d’un burrito ont été fabriqués. Et aussi quand il s’agit de hot-dogs, vous n’avez peut-être pas besoin de savoir. Tout ce qui compte, c’est qu’il ne s’effrite pas lorsque vous le consommez et qu’il est extrêmement savoureux.
L’abstraction est étroitement liée à l’encapsulation
C’est exactement la même chose avec les articles de spectacles. Lorsque vous instanciez une chose (développez-la à partir d’une classe), c’est comme commander un burrito au comptoir du véhicule alimentaire. Vous avez accès à certaines données, mais pas à toutes. Vous n’avez pas besoin de savoir comment l’objet fonctionne, tant que les fonctionnalités renvoient les données appropriées. Voici un burrito en JavaScript/Typescript :
Tu peux jouez avec ce code dans le bac à sable TypeScript .
Dans l’exemple ci-dessus, les ingrédients actifs de la salsa et du fromage sont extraits. Au départ, ils sont enveloppés pour masquer les composants uniques. Ensuite, des getters sont ajoutés pour accéder aux composants. Mais les composants renvoient simplement une représentation abstraite de ce qu’ils sont vraiment.
L’abstraction dans le concret
Cependant, l’abstraction est plus qu’un principe. Les classes peuvent en outre être abstraites. Cela signifie qu’ils peuvent spécifier d’autres classes. Pourtant, ils ne peuvent pas être instanciés eux-mêmes.
Pourquoi les cours devraient parfois être abstraits
Imaginez que vous allez probablement au restaurant et que vous vous asseyez également. Le serveur vous tend une sélection de plats. Vous l’ouvrez pour constater qu’il n’y a qu’un seul élément : la nourriture.
C’est un résumé attrayant. L’achèteriez-vous? Le mangeriez-vous certainement ? Vous ne le feriez probablement pas. Dire que quelque chose est de la nourriture est inadéquat. Il faut le décomposer en quelque chose de beaucoup plus concret.
Et concernant les pâtes ? Eh bien, c’est un type de nourriture très spécifique. De plus, nous comprenons qu’il contient peut-être des nouilles ainsi que de la sauce. Mais il y a beaucoup de différents types de pâtes, donc c’est encore abstrait.
Qu’est-ce qui est abstrait et qu’est-ce qui est concret ?
Fettuccine Alfredo est un exemple concret de nourriture et de pâtes. Le même point met sur les cours. Toutes les classes ne doivent pas être instanciées. Certains cours ne doivent définir que le cadre de divers autres cours.
Voici un exemple avec un résumé Aliments cours, et un enfant Noix de macadamia cours:
Les cours abstraits informent les autres cours sur la façon dont ils sont censés se comporter. Dans l’exemple ci-dessus, si vous êtes le plus susceptible d’être un cours de cuisine, vous devez avoir des fonctions qui permettent d’accéder à votre nom, votre goût, votre description ainsi que vos calories.
Remarquez que le Noix de macadamia classer s’étend Aliments . C’est dire que Noix de macadamia consent à suivre les règlements de Aliments . Aussi, découvrez que le monteur appelle super . Cette commande instancie la classe mamans et papa avant que le constructeur n’instancie Noix de macadamia .
Si vous apprenez à programmer, vous pouvez vous amuser beaucoup plus avec ces programmes de jeux vidéo.
Pratique de l’abstraction
- Visitez le lien ci-dessus et utilisez également le bac à sable pour produire une classe abstraite appelée Soupe.
- Créer un béton jeune de la Soupe classe, appelée Céréale .
- Utiliser console. Journal pour vérifier votre code. Que se passe-t-il si votre Céréale la classe manque l’une des fonctions définies dans Soupe ?
Mais à quoi sert une classe que vous ne pouvez pas instancier ?
Au début, les classes abstraites peuvent sembler inutiles. Néanmoins, vous ne pouvez pas les utiliser pour fabriquer un objet. Et ce n’est pas comme s’ils donnaient leurs caractéristiques. Les fonctions doivent être reformulées dans chaque classe d’enfants.
Il y a 2 facteurs principaux dont vous avez besoin de classes abstraites. Ils maintiennent la cohérence de votre code et veillent à ce que les concepteurs composent également un code cohérent. Vous ne fonctionnerez pas toujours seul. Toute l’équipe doit se conformer aux mêmes politiques. Vous pouvez en découvrir plus sur les documents TypeScript sur les classes abstraites .