Mini Oo

875 vues

Publié le

Les concepts objet

Publié dans : Technologie, Business
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
875
Sur SlideShare
0
Issues des intégrations
0
Intégrations
10
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mini Oo

  1. 2. INTRO-OO Préambule B.Vinot
  2. 3. INTRO-OO Préambule
  3. 4. La Programmation Classique Cahier des charges: Ecrire un programme qui sur une demande faite par téléphone, calcul les consommations de différents véhicules. Le résultat doit être donné sous forme graphique.
  4. 5. La Programmation Classique Main Rouler FairePlein Imprimer int carburant [Numero]; int i , j ; If (carburant[i] != 0) then for (j = 0 ; j < Max ; j++) --reservoir [i]; call Rouler(); else FairePlein();
  5. 6. La Programmation Fonctionnelle et Monde Réel Main Rouler FairePlein Arreter Les Objets ?
  6. 7. La Programmation Fonctionnelle et Monde Réel Main Rouler FairePlein Arreter Une structure de données, manipulée par des fonctions Objet = une entité autonome, qui regroupe un ensemble de propriétés cohérentes et de traitements associés
  7. 8. Les Objets Main Rouler FairePlein Arreter
  8. 9. Les Objets : la Navette Navette Encapsulation
  9. 10. Classe et Instances Navette (50 , false) Navette (10 , true) Navette (0 , false)
  10. 11. Les Classes : la Pompe Pompe Navette
  11. 12. Les Classes : le Téléphone Pompe Navette Telephone
  12. 13. Les Classes : le Graphe Graphe Pompe Navette Telephone
  13. 14. Les Classes : la bicyclette Graphe Pompe Navette Telephone
  14. 15. L ’Héritage Vehicule
  15. 16. L ’Héritage Vehicule Est Un
  16. 17. L ’Héritage <ul><li>poids </li></ul><ul><li>nom </li></ul><ul><li>distance </li></ul><ul><li>reservoir </li></ul><ul><li>parachute </li></ul><ul><li>poids </li></ul><ul><li>nom </li></ul><ul><li>distance </li></ul><ul><li>AffecterPilote </li></ul><ul><li>FairePlein </li></ul><ul><li>Voler </li></ul><ul><li>Atterir </li></ul><ul><li>AffecterPilote </li></ul><ul><li>Rouler </li></ul>Before C++ we had to code all of bugs by hand; now we inherit them.
  17. 18. L ’Héritage Le Polymorphisme <ul><li>poids </li></ul><ul><li>nom </li></ul><ul><li>distance </li></ul><ul><li>reservoir </li></ul><ul><li>parachute </li></ul><ul><li>AffecterPilote </li></ul><ul><li>FairePlein </li></ul><ul><li>Voler </li></ul><ul><li>Atterir </li></ul>V <ul><li>poids </li></ul><ul><li>nom </li></ul><ul><li>distance </li></ul><ul><li>AffecterPilote </li></ul>V =
  18. 19. Le Polymorphisme Vehicule poids : int nom : string distance : int AffecterPilote() Navette reservoir : int parachute : bool FairePlein() Voler() Atterir() Bicyclette Rouler()
  19. 20. Le Polymorphisme .Deplacer => Rouler .Deplacer=> Voler V <ul><li>.Deplacer => </li></ul><ul><ul><li>Rouler </li></ul></ul><ul><ul><li>Voler </li></ul></ul>
  20. 21. Le Polymorphisme V . Deplacer(); V . Deplacer(); V = V =
  21. 22. Le Polymorphisme For (Vehicule = premier to Vehicule = dernier) End For C ’est du code en avance V . Deplacer();
  22. 23. UML
  23. 24. Un schéma UML
  24. 25. Un Schéma Statique : UML
  25. 26. Un Modèle UML <ul><li>Un Modèle UML: </li></ul><ul><li>Plusieurs vues pendant différentes phases de l ’étude: </li></ul><ul><ul><li>Classées dans plusieurs packages </li></ul></ul><ul><ul><li>Représentant différents types de schémas: </li></ul></ul><ul><ul><ul><li>Statiques </li></ul></ul></ul><ul><ul><ul><li>Dynamiques </li></ul></ul></ul>
  26. 27. Un Schéma dynamique Navette reservoir : int parachute : bool FairePlein() Deplacer() Atterir()
  27. 28. Un schéma de collaboration
  28. 29. Autres Schéma UML
  29. 30. Un Programme Objet Navette.h Navette.cpp Navette reservoir : int parachute : bool FairePlein() Deplacer() Atterir() Vehicule poids : int nom : string distance : int AffecterPilote() Deplacer() #include
  30. 31. Un Programme Objet Navette reservoir : int parachute : bool FairePlein() Deplacer() Atterir() Vehicule poids : int nom : string distance : int AffecterPilote() Deplacer() Navette.h Navette.cpp #include
  31. 32. C'était les objets du métier
  32. 33. Les Objets de l'informaticien Char * Printf (%s) ??? !!!!
  33. 34. Les objets de l ’informaticien
  34. 35. Les objets de l ’informaticien
  35. 36. Pas de boucles en OO For (i = 0 ; i < Max , i++) FaireQQ(); Un tour en moins !!! Un tour en trop !!! While ( iter.More()) iter.Next().FaireQQ() ;
  36. 37. Pas de switchs en OO
  37. 39. <ul><li>Techniques : </li></ul><ul><ul><li>Définir les objets du monde réel </li></ul></ul><ul><ul><ul><li>C ’est la phase d  ’analyse </li></ul></ul></ul><ul><ul><ul><li>L ’analyste est dieu </li></ul></ul></ul><ul><ul><li>Rajouter les objets de l ’informaticien </li></ul></ul><ul><ul><ul><li>C ’est la phase de conception </li></ul></ul></ul><ul><ul><ul><li>le concepteur fait son marché </li></ul></ul></ul><ul><li>Avantages : </li></ul><ul><ul><li>Gain de 20% au développement </li></ul></ul><ul><ul><li>Gain de 50% en maintenance </li></ul></ul><ul><ul><li>Outils disponibles (Génération automatique du code) </li></ul></ul><ul><li>Inconvénients : </li></ul><ul><ul><li>Overhead - Formation </li></ul></ul>L'approche fonctionnelle n'est pas adaptée au développement d'applications qui évoluent sans cesse et dont la complexité croit continuellement. L'approche objet a été inventée pour faciliter l'évolution d'applications complexes

×