🎓 Ce dépôt a pour but d’aider les étudiants, développeurs juniors et autodidactes à bien comprendre les 4 piliers de la programmation orientée objet, à travers des explications claires et des exemples pratiques en TypeScript.
Il est particulièrement utile pour bien préparer une soutenance technique ou un entretien d’embauche.
- 🧾 Qu’est-ce que la POO ?
- 🏛️ Les 4 piliers fondamentaux
- 📁 Organisation des dossiers
- 🧪 Exemples pratiques
- 🎤 Questions fréquentes en soutenance
- 💡 Bonnes pratiques (SOLID)
- 🚫 Pièges courants à éviter
- 🛠️ Idée d’exercice pratique
La programmation orientée objet (POO) est un paradigme de développement basé sur le concept d’objets : des entités qui regroupent données (attributs) et comportements (méthodes).
Elle permet d’organiser le code de manière modulaire, réutilisable et maintenable, notamment dans les projets complexes ou collaboratifs.
⚠️ La POO se retrouve dans des langages comme TypeScript, Java, Python, C++... ici elle est aborder avec TypeScript pour les exemples
| Pilier | Définition simplifiée | Exemple |
|---|---|---|
| 🧱 Encapsulation | Protéger les données internes et contrôler leur accès via des méthodes publiques | Méthode login() avec attribut _password privé |
| 🧼 Abstraction | Cacher les détails techniques et ne montrer que l’essentiel à l’utilisateur | Méthode abstraite area() implémentée par Circle, Square |
| 🧬 Héritage | Réutiliser les attributs et comportements d’une classe parent | Admin hérite de User |
| 🌀 Polymorphisme | Même méthode appelée sur différents objets ➜ comportement adapté | draw() qui agit différemment selon Circle ou Rectangle |
/
├── POO-global.md # Introduction générale + synthèse soutenance
├── encapsulation/
│ ├── encapsulation.md
│ ├── encapsulation_class_vs_object.md
│ ├── getter.md
│ ├── setter.md
│ └── encap_&_abstraction.md
├── abstraction/
│ ├── abstraction.md
│ ├── abstraction_vs_encapsulation.md
│ └── interface_vs_abstraction_class.md
├── heritage/
│ ├── abstraction.md
│ └── abstraction_vs_composition.md
└── polymorphisme/
└── polymorphisme.md