# POO (Programmation Orienté Objet)

Souvent en tant que débutant, vous faites du code procédural.

**La solution procédural**

le Afin de traiter les données, on appréhende le problème en raisonnant de façon logique, d'un état initial vers un état final. Les données entrent dans l'algorithme, on applique les actions définies, et on termine. La programmation procédurale tend à une capitalisation dans l'écriture du programme. On tente de trouver des parties qui se répetent, identiques, de trouver des comportements types. Ce seront des procédures et fonctions, qu'on pourra stocker dans des bibliothéques, puis réutiliser.

**Les défauts du procédural**&#x20;

Principe de Wirth (inventeur du langage Pascal) : Programme = algorithme + structure de données =>Forte dépendance du programme aux données => Peu de réutilisabilité => Peu d'interfaçage entre applications => Collaboration difficile entre programmeurs... => Evolution difficile, effet de bords, régressions...

**L'idée de la POO**&#x20;

La Programmation Orientée Objet, c'est la tentative de réunir les données ET les traitements en une unité cohérente et maintenable. Dans le monde réel, tout est à la fois données et traitements... Une facture contient à la fois des données, et des calculs associés... Toute chose est à la fois dotée de caractéristiques (des données, des valeurs) et des comportements (des actions, des réactions à des stimulus, des messages).

{% embed url="<http://igm.univ-mlv.fr/~cherrier/download/imac/Poo1.pdf>" %}

Objet et POO pour bien comprendre :&#x20;

{% embed url="<http://moka.labunix.uqam.ca/~lounis_h/dic8002-hiv2014/seance1&2&3/Concepts-OO-2.pdf>" %}

\[**Développeur avancé**]&#x20;

Requis : POO (**P**rogrammation **O**rienté **O**bjet => pas orienté Prototype comme dans JS) Pour ceux qui sont avancé comme @Thomas | blind-thomas family @Axone ... Je vous recommande un site pour apprendre la suite à la POO sur les patrons de conceptions (**design pattern**).

> Refactoring.Guru vous facilite l’accès à tout ce que vous devez savoir sur la refactorisation, les patrons de conception, les principes **SOLID**, et d’autres sujets intéressants de la l'architecture et de la programmation.

&#x20;C'est des notions général, mais on peut retrouver les mêmes patrons dans tous les langages POO.&#x20;

<img src="https://cdn.discordapp.com/emojis/751023390428758046.png?v=1" alt=":valider:" data-size="line"> Le site est vraiment complet :

{% embed url="<https://refactoring.guru/fr/design-patterns>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bluekeys.org/guide/dev/principes-et-bonnes-pratiques/poo-programmation-oriente-objet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
