La programmation orientée objet
معرفی کتاب «La programmation orientée objet» نوشتهٔ Hugues Bersini، منتشرشده توسط نشر Editions Eyrolles در سال 2009. این کتاب در فرمت pdf، زبان فرانسوی ارائه شده است. «La programmation orientée objet» در دستهٔ بدون دستهبندی قرار دارد.
Table des matières......Page 6 Avant-propos......Page 14 L’orientation objet en deux mots......Page 15 Objectifs de l’ouvrage......Page 18 Plan de l’ouvrage......Page 19 À qui s’adresse ce livre ?......Page 20 1-Principes de base : quel objet pour l’informatique ?......Page 22 Le trio ......Page 23 Stockage des objets en mémoire......Page 24 Types primitifs......Page 25 Le référent d’un objet......Page 26 Plusieurs référents pour un même objet......Page 27 L’objet et ses constituants......Page 28 Objet composite......Page 29 Les différents états d’un objet......Page 30 Les changements d’état : qui en est la cause ?......Page 31 Méthodes et classes......Page 32 Sur quel objet précis s’exécute la méthode......Page 33 Comment les objets communiquent......Page 34 Identification des destinataires de message......Page 35 Dépendance contextuelle du bon niveau taxonomique......Page 37 Polymorphisme......Page 39 Exercice 1.3......Page 40 Exercice 1.5......Page 41 2-Un objet sans classe… n’a pas de classe......Page 42 Définition d’une méthode de la classe : avec ou sans retour......Page 43 Identification et surcharge des méthodes par leur signature......Page 45 Le constructeur......Page 46 Mémoire dynamique, mémoire statique......Page 48 La classe comme garante de son bon usage......Page 49 Mémoire de la classe et mémoire des objets......Page 50 Méthodes de la classe et des instances......Page 51 En Java......Page 52 EN C#......Page 54 En C++......Page 56 En Python......Page 58 En PHP 5......Page 61 Classes et développement de sous-ensembles logiciels......Page 63 Classes, fichiers et répertoires......Page 64 Exercice 2.3......Page 65 Exercice 2.6......Page 66 Exercice 2.7......Page 67 Exercice 2.9......Page 68 3-Du faire savoir au savoir-faire… du procédural à l’OO......Page 70 Objectif objet : les aventures de l’OO......Page 71 Transition vers l’objet......Page 72 Analyse procédurale......Page 73 Fonctions principales......Page 74 Les acteurs du scénario......Page 75 Indépendance de développement et dépendance fonctionnelle......Page 76 La collaboration des classes deux à deux......Page 77 4-Ici Londres : les objets parlent aux objets......Page 78 Envois de messages......Page 79 Association de classes......Page 80 Dépendance de classes......Page 81 Réaction en chaîne de messages......Page 83 Exercice 4.5......Page 84 5-Collaboration entre classes......Page 86 Pour en finir avec la lutte des classes......Page 87 La compilation Java : effet domino......Page 89 En C#, en Python, PHP 5 et en C++......Page 90 De l’association unidirectionnelle à l’association bidirectionnelle......Page 92 Auto-association......Page 95 Package et namespace......Page 96 Exercice 5.5......Page 99 6-Méthodes ou messages ?......Page 100 En Java......Page 101 En C#......Page 102 En C++......Page 103 En Python......Page 104 En PHP 5......Page 105 En Java......Page 108 En C#......Page 109 En PHP 5......Page 111 En C++......Page 112 En Python......Page 114 Interface : liste de signatures de méthodes disponibles......Page 115 Des méthodes strictement intimes......Page 116 L’informatique distribuée......Page 117 Exercice 6.2......Page 118 Exercice 6.3......Page 119 Exercice 6.4......Page 120 Exercice 6.6......Page 121 7-L’encapsulation des attributs......Page 122 Accès externe aux attributs......Page 123 Cachez ces attributs que je ne saurais voir......Page 124 Encapsulation des attributs......Page 125 En PHP 5......Page 127 Pour préserver l’intégrité des objets......Page 128 La gestion d’exception......Page 129 Pour pouvoir faire évoluer leur traitement en douceur......Page 131 Exercice 7.2......Page 133 Exercice 7.4......Page 134 8-Les classes et leur jardin secret......Page 136 Interface et implémentation......Page 137 Toujours un souci de stabilité......Page 138 Les niveaux intermédiaires d’encapsulation......Page 140 Une classe dans une autre......Page 141 Utilisation des paquetages......Page 143 Afin d’éviter l’effet papillon......Page 144 Exercice 8.6......Page 147 9-Vie et mort des objets......Page 148 Un rappel sur la mémoire RAM......Page 149 Les objets intérimaires......Page 150 Mémoire pile......Page 151 Mémoire tas......Page 157 Un premier petit scénario catastrophe en C++......Page 158 Second petit scénario catastrophe en C++......Page 159 En Java......Page 161 En C#......Page 162 Le ramasse-miettes (ou garbage collector)......Page 163 Des objets qui se mordent la queue......Page 164 En Python......Page 165 En Python......Page 166 Exercice 9.2......Page 167 Exercice 9.4......Page 168 Exercice 9.5......Page 169 Exercice 9.6......Page 170 Exercice 9.8......Page 171 10-UML 2......Page 172 Diagrammes UML 2......Page 174 Représentation graphique standardisée......Page 175 Du tableau noir à l’ordinateur......Page 176 Programmer par cycles courts en superposant les diagrammes......Page 177 Une classe......Page 178 Association entre classes......Page 182 Similitudes et différences entre les langages......Page 186 Pas d’association sans message......Page 187 Rôles et cardinalité......Page 188 Dépendance entre classes......Page 192 Composition......Page 193 En Java......Page 194 En C#......Page 198 En C++......Page 200 En Python......Page 204 Classe d’association......Page 208 Des joueurs de football qui font leurs classes......Page 209 Les avantages des diagrammes de classe......Page 211 Diagramme de séquence......Page 212 Exercice 10.1......Page 218 Exercice 10.3......Page 220 Exercice 10.4......Page 221 Exercice 10.6......Page 222 11-Héritage......Page 224 Comment regrouper les classes dans des superclasses......Page 225 Héritage des attributs......Page 226 Pourquoi l’addition de propriétés ?......Page 228 L’héritage : du cognitif aux taxonomies......Page 229 Qui peut le plus peut le moins......Page 231 Héritage ou composition ?......Page 232 Héritage des méthodes......Page 233 Code Java......Page 235 Code C#......Page 237 Code C++......Page 238 Code Python......Page 240 La recherche des méthodes dans la hiérarchie......Page 242 Encapsulation protected......Page 243 Héritage et constructeurs......Page 244 Deuxième code Java......Page 245 Troisième code Java : le plus logique et le bon......Page 246 En C#......Page 247 En C++......Page 248 En Python......Page 249 Héritage public en C++......Page 250 Ramifications descendantes et ascendantes......Page 251 Multihéritage en C++ et Python......Page 252 Exercice 11.3......Page 262 Exercice 11.5......Page 263 Exercice 11.6......Page 264 Exercice 11.11......Page 265 12-Redéfinition des méthodes......Page 266 La redéfinition des méthodes......Page 267 Beaucoup de verbiage mais peu d’actes véritables......Page 268 Un match de football polymorphique......Page 269 La classe Balle......Page 270 Précisons la nature des joueurs......Page 275 Passons à l’entraîneur......Page 281 Passons maintenant au bouquet final......Page 283 Un même ordre mais une exécution différente......Page 284 C++ : un comportement surprenant......Page 286 Polymorphisme : uniquement possible dans la mémoire tas......Page 288 Quand la sous-classe doit se démarquer pour marquer......Page 293 Exercice 12.3......Page 301 Exercice 12.4......Page 304 Exercice 12.5......Page 305 Exercice 12.6......Page 306 Exercice 12.7......Page 308 13-Abstraite, cette classe est sans objet......Page 312 Des classes sans objet......Page 313 Du principe de l’abstraction à l’abstraction syntaxique......Page 314 Abstraite de père en fils......Page 316 Un petit exemple dans les cinq langages de programmation......Page 317 L’abstraction en Python......Page 321 Cliquez frénétiquement......Page 322 Le polymorphisme en UML......Page 325 Exercice 13.2......Page 326 Exercice 13.7......Page 327 Exercice 13.8......Page 329 Exercice 13.9......Page 331 Exercice 13.10......Page 333 Exercice 13.11......Page 335 Exercice 13.12......Page 336 14-Clonage, comparaison et assignation d’objets......Page 338 Introduction à la classe Object......Page 339 Une classe à compétence universelle......Page 340 Code Java illustrant l’utilisation de la classe Vector et innovation de Java 5......Page 341 Décortiquons la classe Object......Page 342 Code Java pour expérimenter la méthode equals(Object o)......Page 344 Égalité en profondeur......Page 347 Code Java pour expérimenter la méthode clone()......Page 349 Code Python pour expérimenter l’égalité et le clonage......Page 352 Code PHP 5 pour expérimenter l’égalité et le clonage......Page 354 Code C++ illustrant la duplication, la comparaison et l’affectation d’objets......Page 356 Traitons d’abord la mémoire tas......Page 360 Surcharge de l’opérateur d’affectation......Page 361 Surcharge de l’opérateur de comparaison......Page 362 Code C++ de la classe O1 généré automatiquement par Rational Rose......Page 364 Pour les classes......Page 366 Code C#......Page 367 Exercice 14.7......Page 372 15-Interfaces......Page 374 Java, C# et PHP 5 : interface via l’héritage......Page 376 Forcer la redéfinition......Page 377 La carte de visite de l’objet......Page 383 Les Interfaces dans UML 2......Page 391 En C++ : fichiers .h et fichiers .cpp......Page 392 Exercice 15.1......Page 395 Exercice 15.3......Page 396 Exercice 15.5......Page 397 Exercice 15.10......Page 398 16-Distribution gratuite d’objets : pour services rendus sur le réseau......Page 400 Répartition des données......Page 401 Répartition des utilisateurs et des responsables......Page 402 Peer-to-peer......Page 403 RMI (Remote Method Invocation)......Page 404 Côté serveur......Page 405 Côté client......Page 406 RMIC : stub et skeleton......Page 408 Lancement du registre......Page 409 Corba (Common Object Request Broker Architecture)......Page 410 IDL......Page 411 Compilateur IDL vers Java......Page 412 Côté client......Page 413 Côté serveur......Page 414 Exécutons l’application Corba......Page 416 Rajoutons un peu de flexibilité à tout cela......Page 417 Corba : invocation dynamique versus invocation statique......Page 418 Jini......Page 419 XML : pour une dénomination universelle des services......Page 420 Code C# du service......Page 423 WDSL......Page 424 Code C# du client......Page 425 Soap (Simple Object Access Protocol)......Page 426 Invocation dynamique sous .Net......Page 427 Invocation asynchrone en .Net......Page 428 Mais où sont passés les objets ?......Page 429 Services Web vs RMI et Corba......Page 432 Exercice 16.6......Page 433 Exercice 16.12......Page 434 17-Multithreading......Page 436 Informatique séquentielle......Page 438 Multithreading......Page 440 Implémentation en Java......Page 441 Implémentation en C#......Page 443 Implémentation en Python......Page 446 L’impact du multithreading sur les diagrammes de séquence UML......Page 447 Des threads équirépartis......Page 448 Synchroniser les threads......Page 450 Exercice 17.1......Page 458 Exercice 17.3......Page 459 Exercice 17.8......Page 460 18-Programmation événementielle......Page 462 Des objets qui s’observent......Page 463 En Java......Page 464 Généralités sur les délégués dans .Net......Page 467 Retour aux observateurs et observables......Page 470 En Python : tout reste à faire......Page 475 Un feu de signalisation plus réaliste......Page 478 Exercice 18.4......Page 480 19-Persistance d’objets......Page 482 Et que dure le disque dur......Page 483 Utilisation des « streams »......Page 484 En Java......Page 485 En C#......Page 487 En C++......Page 488 En Python......Page 489 En PHP 5......Page 490 En Java......Page 491 En C#......Page 493 En Python......Page 494 Contenu des fichiers de sérialisation : illisible......Page 495 SQL......Page 496 Une table, une classe......Page 497 Comment Java et C# s’interfacent aux bases de données......Page 498 Relations entre tables et associations entre classes......Page 503 Réservation de places de spectacles......Page 508 Les bases de données relationnelles-objet......Page 513 SQL3......Page 515 OQL......Page 517 Linq......Page 518 Premier exemple de Linq agissant sur un tableau d’objets......Page 519 Deuxième exemple de Linq agissant sur une base de données relationnelles......Page 520 Exercice 19.10......Page 522 20-Et si on faisait un petit flipper ?......Page 524 Généralités sur le flipper et les GUI......Page 526 Une petite animation en C#......Page 531 Code C# de l’animation graphique......Page 532 Retour au Flipper......Page 535 Code Java du Flipper......Page 537 21-Les graphes......Page 548 Le monde regorge de réseaux......Page 549 Tout d’abord : juste un ensemble d’objets......Page 551 Liste liée......Page 552 En Java......Page 554 En C++......Page 557 La généricité en C++......Page 559 La généricité en Java......Page 562 Passons aux graphes......Page 568 Exercice 21.8......Page 573 Exercice 21.9......Page 575 22-Petites chimie et biologie OO amusantes......Page 578 Une aide à la modélisation chimique......Page 579 Les diagrammes de classe du réacteur chimique......Page 580 Les composants chimiques......Page 581 Les réactions chimiques......Page 590 Quelques résultats du simulateur......Page 594 Petite introduction au fonctionnement du système immunitaire......Page 596 Le diagramme UML d’état-transition......Page 598 23-Design patterns......Page 602 De l’architecte à l’archiprogrammeur......Page 603 Les patterns « truc et ficelle »......Page 605 Le pattern adaptateur......Page 606 Les patterns patron de méthode, proxy, observer et memento......Page 608 Le pattern flyweight......Page 610 Les patterns builder et prototype......Page 611 Les patterns qui se jettent à l’OO......Page 612 Le pattern command......Page 614 Le pattern décorateur......Page 617 Le pattern composite......Page 619 Le pattern chain of responsabililty......Page 620 Les patterns strategy, state et bridge......Page 621 Index......Page 626 Présentation L'approche objet est enseignée dans les universités dès les premiers niveaux des cursus informatiques, car sa compréhension est le prérequis indispensable à toute pratique économe, fiable et élégante de la plupart des techniques informatiques qui en sont dérivées, depuis Java et Python, jusqu'à UML 2, en passant par .Net et C++. L'objet par la pratique avec Python, Java, C# et C++ et PHP 5... en UML 2 Cette cinquième édition de l'ouvrage L'orienté objet décortique l'ensemble des mécanismes de la programmation objet (classes et objets, interactions entre classes, envois de messages, encapsulation, héritage, polymorphisme, interface, multi-threading, sauvegarde des objets, programmation distribuée, modélisation...) en les illustrant d'exemples empruntant aux technologies les plus populaires : Java et C#, C++, Python, PHP 5, UML 2, LinQ mais aussi les services web, Cobra, les bases de données objet, différentes manières de résoudre la mise en correspondance relationnel/objet dont le langage innovant de requête objet LinQ et enfin les design patterns. Chaque chapitre est introduit par un dialogue vivant, à la manière du maître et de l'élève, et se complète de nombreux exercices en UML 2, Java, Python, PHP 5, C# et C++. À qui s'adresse ce livre ? Ce livre sera lu avec profit par tous les étudiants de disciplines informatiques liées à l'approche objet (programmation orientée objet, modélisation UML, Java, Python, PHP 5, C#/C++...) et pourra être utilisé par leurs enseignants comme matériel de cours. Il est également destiné à tous les développeurs qui souhaitent approfondir leur compréhension des concepts objet sous-jacents au langage qu'ils utilisent. Le code source des exercices et leurs corrections sont fournis sur le site d'accompagnement www.editions-eyrolles.com Au sommaire Principes de base : quel objet pour l'informatique Un objet sans classe... n'a pas de classe Du faire-savoir au savoir-faire... du procédural à l'OO Ici Londres : les objets parlent aux objets Collaboration entre classes Méthodes ou messages ? L'encapsulation des attributs Les classes et leur jardin secret Vie et mort des objets UML 2 Héritage Redéfinition des méthodes Abstraite, cette classe est sans objet Clonage, comparaison et assignation d'objets Interfaces Distribution gratuite d'objets : pour services rendus sur le réseau Multithreading Programmation événementielle Persistance d'objets Et si on faisait un petit flipper ? Les graphes Petite chimie et bio.. L'approche Objet Est Enseignée Dans Les Universités Dès Les Premiers Niveaux Des Cursus Informatiques, Car Sa Compréhension Est Le Prérequis Indispensable à Toute Pratique économe, Fiable Et élégante De La Plupart Des Techniques Informatiques Qui En Sont Dérivées, Depuis Java Et Python, Jusqu'à Uml 2, En Passant Par C# Et C++, L'objet Par La Pratique Avec Python, Java, C# Et C++ Et Php 5... En Uml 2 Cette Quatrième édition De L'ouvrage L'orienté Objet Décortique L'ensemble Des Mécanismes De La Programmation Objet (classes Et Objets, Interactions Entre Classes, Envois De Messages, Encapsulation, Héritage, Polymorphisme, Modélisation...) En Les Illustrant D'exemples Empruntant Aux Technologies Les Plus Populaires: Java Et C#, C++, Python, Php 5, Uml 2, Mais Aussi Les Services Web, Rmi, Les Bases De Données Objet, Différentes Manières De Résoudre La Mise En Correspondance Relationnel/objet Par Le Langage Innovant De Requête Objet Linq Et Enfin Les Design Patterns. Chaque Chapitre Est Introduit Par Un Dialogue Vivant, à La Manière Du Maître Et De L'élève, Et Se Complète De Nombreux Exercices En Uml 2, Java, Python, Php 5, C# Et C++. Ce Livre Sera Lu Avec Profit Par Tous Les étudiants De Disciplines Informatiques Liées à L'approche Objet (programmation Orientée Objet, Modélisation Uml, Java, Python, Php 5, C#/c++...) Et Pourra être Utilisé Par Leurs Enseignants Comme Matériel De Cours. Il Est également Destiné à Tous Les Développeurs Qui Souhaitent Approfondir Leur Compréhension Des Concepts Objet Sous-jacents Au Langage Qu'ils Utilisent.
دانلود کتاب La programmation orientée objet