D'où la programmation «orientée objet» tire-t-elle son nom?
Orienté Objet n'est pas un mot à la mode choisi au hasard dans les cercles de programmation. Il y a une raison derrière le nom - mais quoi? Rejoignez-moi pour explorer certains des concepts fondamentaux de la programmation et expliquer pourquoi la programmation orientée objet oriente la technologie à la base de tout logiciel moderne et la compare à la programmation procédurale et logique..
Histoire de la programmation procédurale
Lorsque les ordinateurs ont été inventés, ils devaient être programmés explicitement avec des instructions simples - et “Logiciel” était simplement une collection de ces commandes extrêmement simples liées qui courraient en séquence.
Initialement, ces codes machine requis étaient écrits - déplacez ceci “bit” de cette mémoire à cet emplacement, et effectuer une logique “et” opération sur ce bit, etc. - mais assez vite, ils ont été abstraits à un niveau supérieur en utilisant BASIC.
Je soupçonne que la plupart d’entre vous ont rencontré le BASIC (Code d’instruction symbolique polyvalent pour débutants) à l’école. C'est un exemple parfait d'un langage de programmation procédural. Même ma première tentative de programmation utilisait BASIC sur un Amstrad CPC-64. Chaque ligne commence par un numéro de ligne, suivi d'une instruction simple en langage lisible par l'homme.
Puisque les langages procéduraux suivent les commandes les unes après les autres, il est généralement facile pour les humains de suivre ce qui se passe dans le programme. Cependant, il est également difficile de faire autre chose qu'un simple exercice d'apprentissage, ce qui nous amène à la création d'une programmation orientée objet..
Orienté Objet?
Avec la programmation orientée objet, l’idée est de regrouper les variables et les fonctionnalités associées dans un seul objet, ce qui représente une sorte de structure de données complexe. Cet objet peut ensuite être réutilisé plusieurs fois, ou étendu pour devenir quelque chose d'encore plus complexe..
Par exemple, une partie peut avoir un objet joueur. Chaque objet de joueur dans le jeu représente un joueur unique et réel dans notre jeu en ligne multijoueur imaginaire. Chaque objet de joueur a un surnom, un emplacement actuel, un inventaire et un taux de déplacement. Même si chaque joueur est unique, nous souhaitons toujours qu'ils partagent la même fonctionnalité de base. Chaque joueur peut avoir un bouge toi qui amène le joueur à avancer de X nombre de cases. Chaque joueur peut avoir un taux de déplacement différent, mais lorsque nous lui dirons de passer d’une commande à l’autre, il saura réagir en fonction de sa propre mécanique Internet..
Pourquoi est-ce utile? Prenons un exemple plus réaliste - car les interfaces utilisateur graphiques modernes seraient impossibles sans objets - tous les systèmes d'exploitation fournissent un objet Window. Il est donc facile d'avoir un nouveau “la fenêtre” complète avec des boutons proches et plein écran, et la possibilité d'être déplacé - sans avoir à programmer vous-même. Tout ce que vous avez à faire est de dire créer une fenêtre.
En fait, les logiciels modernes consistent en des milliers et des milliers d’objets - pas seulement des fenêtres, mais des boutons, des champs de formulaire et des boîtes d’alerte (qui sont eux-mêmes un type particulier d’objet window) - et ce n’est que la manière dont ils sont organisés et la d'interaction entre eux qui rend ce logiciel différent des autres. Cela signifie que les programmeurs et les concepteurs de logiciels sont libres de se concentrer sur la fabrication de la mécanique de base de leur programme sans avoir à réinventer la roue à chaque fois..
Un autre avantage de la conception orientée objet est que la fonctionnalité est séparée et invisible les unes des autres. Ainsi, lorsque le joueur appuie sur la touche de progression dans notre jeu, il appels la fonction de déplacement dans le objet de joueur. Si nous apportons un léger changement à la façon dont ce mouvement est exécuté avec précision dans l'objet du joueur - comme sauter au lieu de marcher - alors nous n'avons pas besoin de régler le clavier-écouteur. Il appelle encore “bouge toi” indépendamment de ce qui se passe en interne dans l'objet player - nous pouvons donc modifier les fonctionnalités sans tout casser.
Il en va de même dans les systèmes d'exploitation: si l'utilisateur décide soudainement de changer la couleur de sa fenêtre en rouge, vous n'avez pas besoin de le détecter ni de rendre la fenêtre rouge également: tout est intégré à l'objet window..
Héritage
Une fois que nous avons des objets, nous pouvons également les étendre et les hériter pour produire des objets plus utiles avec un comportement différent ou des fonctionnalités supplémentaires. Vous pouvez réinventez la roue - si vous voulez. Dans notre exemple de joueur, nous voulons peut-être créer un “Superman” objet. Superman est toujours un joueur, comme tout le monde - il veut aussi un surnom et veut figurer sur le même tableau des leaders des joueurs - mais au lieu de l'action de déplacement standard qui fait avancer l'objet X du joueur, nous le voulons. voler à la place - déplacer 10 carrés à la fois au-dessus de tout objet gênant. En étendant l’objet de base du joueur, nous pouvons “hériter” toutes ces fonctionnalités utiles sans avoir à réécrire tout cela à nouveau - mais nous pouvons toujours “passer outre” la fonction de déplacement avec notre mouvement spécial volant superman!
La programmation orientée objet est une révélation absolue si vous n'aviez jamais expérimenté la programmation procédurale, et je pense personnellement qu'il est dommage qu'un type simple de langage POO ne soit pas enseigné au collège..
Une dernière chose: Langages de programmation basés sur la logique
Celles-ci m'intéressent particulièrement, car elles sont généralement plus utiles pour tout ce qui concerne l'intelligence artificielle. Les langages de programmation basés sur la logique, tels que Prolog, n'utilisent pas les commandes et les instructions au sens traditionnel du terme. Au lieu de cela, ils vont résoudre un problème étant donné un ensemble de règles et de conditions.
Pensez à un dîner que vous organisez pour votre famille. Votre tante ne peut pas s'asseoir à côté de votre oncle car ils vont se disputer; vous ne voulez pas que deux enfants s'assoient ensemble parce qu'ils seront de petits coquins; vous ne voulez certainement pas vous asseoir entre deux enfants. Voilà votre programme Prolog est écrit. Maintenant, donnez-lui une liste des enfants et des adultes qui assisteront à la fête, et il affichera une liste de suggestions de places possibles.!
J'espère que vous avez apprécié cette introduction de niveau débutant aux concepts de programmation. Je suis désolé de ne pas pouvoir entrer plus dans les détails et bien sûr, il y a un million de choses que je n'ai pas abordées. Si vous souhaitez en savoir plus, faites le moi savoir dans les commentaires. Peut-être pourrions-nous faire une série de tutoriels de programmation pour débutants orientés objet pour différentes langues s’il ya assez d’intérêt? Assurez-vous également de consulter nos archives relatives à la programmation, avec divers outils et sites Web de programmation..
Crédit d'image: ShutterStock
En savoir plus sur: Programmation.