ITInnovDesign
Latest Posts:

Demystifions Ensemble la Programmation Orientée Objet
Demystifions Ensemble la Programmation Orientée Objet

C'est quoi la programmation orientée objet? (OOP =Object Oriented Programing)

Dans le monde du developpement des logiciels, tout est question d'abstraction, vous avez bien compris ce mot? A-B-S-T-T-R-A-C-T-I-O-N.

Quand quelque chose est complexe, on cherche à le simplifier en faisant une abstraction (une boite noir si vous voulez). Pour faire simple, quand vous voulez faire un site web de nos jours, vous vous focalisez exclusivement sur HTML + CSS et dans une mesure javascript et votre travail se concentre uniquement sur ça et rien de plus et pourquoi? parceque en amont le navigateur qui doit effectivement faire les requetes HTTP, à penser tout pour vous, donc les requetes HTTP sont effectivement une abstraction pour vous, vous avez dejà dans votre tete que quand l'utilisateur va lancer le lien de votre page, tout doit fonctionner et il doit visualiser votre belle page, ceci n'est possible que parceque on a fait beaucoup d'abstraction en amont, ces abstractions vous cachent en effet toute la complexité qu'il y a du moment ou l'utilisateur clique sur le lien, jusqu'au rendu effectif et complete de la page.. donc le concepteur du navigateur fait cette abstraction pour vous, exactement comme les concepteurs des routeurs, des switch servent d'abstraction au concepteur des navigateurs qui ne doit pas se préoccuper quand il crée le navigateur de comprendre comment les requetes HTTP sont decoupées en petit paquets par le protocol TCP/IP pour etre routé à travers des nombreux routeurs eparpillés dans le monde et reconstruites sur la machine finale ou il y a le serveur.

Donc l'informatique a toujours été une question d'abstraction, tellement d'abstraction ou à la fin nous utilisateur et surtout developpeurs, oublions qu'au finish, le processeur de la machine ne comprends que les 0 tension basses et les 1 voltage haute donc du 10101011010 et ne connait pas ce que veut dire la lettre A ou la lettre B ou le nombre 20 ou 100 mais seulement les 1 et les 0, tout cela c'est à cause de l'abstraction qu'on a fait en creant des langages comme le Assembly, qui successivement sont passés aux lagages comme le C qui est un langage fonctionnelle donc basé sur l'utilisation massive des biblithèques composées uniquement des fonctions et pour mieux organiser la manière d'écrire et de structurer le code on a crée, l'abstraction de la OOP.

Dans cette abstraction, on organise notre code en pensant au monde réel fait des objets, nous sommes entourés que des objets : l'ordinateur sur lequel je suis entrain d'ecrire est un objet, à cote de moi j'ai un verre de caffé qui est un objet, je suis assis sur ma terrasse et mes pots de fleurs sont des objets ainsi de suite ainsi de suite, ces objets sont bien identifiables et on des propriétés bien definies, par exemple leur couleur, leur façon de se comporter etc.. donc construire du code informatique en faisant une abstraction sur des objets simplifie enormement son developpement et surtout sa maintenance et son partage et integration avec d'autres codes. par exemple si je dois faire un site d'ecommerce ou je dois vendre des produits regroupés par categories, avant meme de me mettre à commencer à ecrire du HTML + css + javascript, je peux commencer informatiquement parlant en ecrivant du code dans le langage ou je developpe qui fait une abstration de ce domaine du ecommerce, en créeant par exemple un objet qui represente les produits et contient toutes les propriétés que peux avoir un produit (nom, type de produits, prix, couleur, taille etc..), et un objet qui peut representer les categories, de manière que je puisse dejà à partir du code pouvoir faire interagir ces deux objets.

Ceci peut me permettre d'écrire une bibliothèque exclusivement pour la gestion des produits, une pour les catégories et de pouvoir les reutiliser dans de multiples projets.

Pour ne pas parlez beaucoup la OOP est basé sur 3 pilliers fondamentaux :

1. l'encapsulation :conciste à cacher les fonctionalités internes à l'objet à travers des propriétés qu'on ne peut manipuler en dehors de l'objet (on ne doit pas modifier la boite noire et violer son fonctionement à partir de l'exterieur).

2. l'eredité: conciste à structurer son code de manière que les choses comunes puissent etre facilement reutilisables, on dit en anglais "don't reinvented the wheel" => n'invente pas la roue, donc si je vois qu'il y a une chose comune qui peut etre appliquée a plusieurs objets, alors je regroupe cette chose comune dans une classe ou un objet de base, et tous les objets fils derivent de cet objet de base.

3. le polimorphysme : consiste à organiser le code de manière que un objet qui derive d'un autre objet de base puisse avoir les memes comportements que lui, donc on peut facilement remplacé l'objet de base par n'importe quel objet derivé sans qu'il n'y est BUG dans le programme.

le 1, 2 et 3 sont à la base de ce qu'on appelle les Design Pattern qui sont la clée de comprehension de toutes les bibliothèques et les framework autour de tous les langages de programmation. Si vous avez lu mes articles sur la programmation des app mobiles avec android en utilisant ionic, flutter, xamarin ou kotlin, tous, je dis bien tous sont basés sur des Design Pattern qui a son tour utilise du pure OOP que nous propose non seulement les bibliothèques des langages, mais aussi des framework utilisés regarde le code de flutter vous alle voir que nos widget derive d'un widget de base prevu dans la bibliothèque de flutter et qui contient dejà des fonctionalités prevu par le team(équipe) de flutter pour nous simplifier la vie, meme chose si vous reguardez le code de Kotlin, notre activity de base derive d'une activity native de kotlin, il en est de meme pour xamarin etc. etc.. savoir et comprendre la OOP et appliquer aux Design Pattern vous ouvrira enormenent la voie dans le monde du dev.

Bon coding, s'il y a des questions, j'éclaircisserai


Author: admin
10.08.2022, 10:13
Category: Coding
Comments: 2
Views: 509
-

Share

Comments (2)
redoStext
redoStext Guest

E, Although CFTR inhibition significantly shifts the basal tone, it does not alter phenylephrine stimulated vasoconstriction n 5 6 cialis generic online He asked Zhao Ling is hand

02.04.2023, 23:28

JP
JP Guest

here we GO

10.08.2022, 10:07


Leave A Comment
processing...