Home
La programmation orientée objet
Contents
1. Je pense qu utiliser UML comme g n rateur de code est une id e ex crable Il n y a rien de magique au sujet d UML Si vous pouvez cr er du code partir des diagrammes alors il s agit d un langage de programmation Or UML n est pas du tout con u comme un langage de programmation Bertrand Meyer cr ateur d Eiffel et d fendant la programmation OO dite par contrats Je ne comprends pas comment l on peut programmer sans prendre le temps et la responsabilit de se demander ce que les l ments du programme ont la charge de faire C est une question poser Gosling Stroustrup Alan Kay ou Hejlsberg Avant propos EU R cemment un livre intitul Masterminds of Programming O Reilly 2009 et compilant un ensemble d entretiens avec les cr ateurs des langages de programmation nous a convaincu du bien fond de ce type de d marche comparative Il appara t en effet au vu de la guerre des mots laquelle se livrent ses cr ateurs qu aucun langage de programmation ne peut vraiment s appr hender sans partiellement le comparer d autres En fait tous se positionnent dans une forme de rupture ou de replacement par rapport ses pr d cesseurs Enfin nous souhaitions que cet ouvrage tout en restant suffisamment d tach de toute techno logie couvre l essentiel des probl mes pos s par la mise en uvre des objets en informatique leur stockage sur le disque dur leur interfa age avec les bases de do
2. bien au temps Ses pages ne jaunissent pas trop et tout comme la plupart des technologies qu il recense il reste r trocompatible avec ses versions pr c dentes Il suit les volutions de toutes ces technologies m me si celles ci restent d lib r ment accroch es aux principes OO qui en font son sujet et nous l esp rons son attrait principal
3. de programmation proposant des syntaxes dont les diff rences sont soit purement cosm tiques soit plus subtiles Ils sont autant de variations sur les th mes cr s par leurs trois principaux pr curseurs Simula Smalltalk et C LOO a galement conduit repenser trois des chapitres les plus importants de l informatique de ces deux derni res d cennies e tout d abord le besoin de d velopper une m thode de mod lisation graphique standardi s e d bouchant sur un niveau d abstraction encore suppl mentaire on ne programme plus en crivant du code mais en dessinant un ensemble de diagrammes le code tant cr automatiquement partir de ceux ci c est le r le jou par UML 2 e ensuite les applications informatiques distribu es on ne parlera plus d applications distri bu es mais d objets distribu s et non plus d appels distants de proc dures mais d envois de messages travers le r seau e enfin le stockage des donn es qui doit maintenant compter avec les objets Chaque fois plus qu un changement de vocabulaire un changement de mentalit sinon de culture A s impose Les grands acteurs de l orient objet Aujourd hui POO est omnipr sent Microsoft par exemple a d velopp un nouveau langage informa tique purement objet C a tr s intens ment contribu au d veloppement d un syst me d informa tique distribu e bas sur des envois de messages d ordinateur ordinateur
4. les services web et a plus Avant propos Ox r cemment propos un nouveau langage d interrogation des objets LINQ qui s interface naturelle ment avec le monde relationnel et le monde XML Tous les langages informatiques int gr s dans sa nouvelle plate forme de d veloppement Net aux derni res nouvelles ils seraient 22 visent une uniformisation y compris les nouvelles versions de Visual Basic et Visual C en int grant les m mes briques de base de POO Aboutissement consid rable s il en est il devient tr s simple de faire commu niquer ou h riter entre elles des classes crites dans des langages diff rents Plusieurs ann es auparavant Sun avait con u Java une cr ation d terminante car elle fut l origine de ce nouvel engouement pour une mani re de programmer qui pourtant existait depuis toujours sans que les informaticiens dans leur ensemble en reconnaissent lutilit ni la pertinence Depuis Sun a cr RMI Jini et sa propre version des services web tous bas s sur les technologies OO Ces m mes services web font l objet de d veloppements tout autant aboutis chez HP ou IBM la crois e de Java et du Web originellement la raison sinon du d veloppement de Java du moins de son succ s on d couvre une importante panoplie d outils de d veloppement et de conception de sites web dyna miques Depuis Java est devenu le langage de pr dilection pour de nombreuses applications d entre prise et plus
5. mode de mise en relation et de regroupement des objets que Pon retrouve abondamment dans toute l informatique Le chapitre 22 marie la chimie la biologie et l conomie la programmation OO Il contient tout d abord la programmation d un r acteur chimique cr ant de nouvelles mol cules partir de mol cules de base tout en suivant la trace l volution de la concentration des mol cules dans le temps La chimie une chimie l mentaire acquise bien avant l universit nous est apparue tre une plate forme p dagogique id ale pour l assimilation des concepts objets Nous proposons aussi des simu lations l mentaires du syst me immunitaire et d une conomie de march Enfin la derni re partie se ram ne au seul chapitre 23 dans lequel sont pr sent es plusieurs recettes de conception OO r solvant de mani re fort l gante un ensemble de probl mes r cur rents dans la r alisation de programmes Ces recettes de conception d nomm es Design patterns sont devenues fort c l bres dans la communaut OO Leur compr hension s inscrit dans la suite logique de l enseignement des briques et des m canismes de base de POO Elle fait souvent la dif f rence entre l apprenti et le compagnon parmi les programmeurs OO Nous les illustrons en partie sur le flipper la chimie la biologie et l conomie des chapitres pr c dents qui s adresse ce livre Cet ouvrage est sans nul doute destin un public ass
6. pour en comprendre in fine toute la probl matique et les subtilit s ind pendamment de l une ou l autre impl mentation Ajoutez une couche d abstraction ainsi que le permet UML et cette compr hension ne pourra que s en trouver renforc e Chacun de ces cinq langages offre des particularit s amenant les praticiens de l un ou l autre le pr tendre sup rieur aux autres la puissance du C la compatibilit Windows et l int gration XML de C l anti Microsoft et le leadership de Java en mati re de serveurs d entreprise les vertus p dagogiques et l aspect scripting de Python le succ s incontestable de PHP 5 pour la mise en place simplifi e d une solution web dynamique et la capacit de s interfacer ais ment avec les bases de donn es Nous nous d sint resserons ici compl tement de ces querelles de clochers a fortiori car notre projet p dagogique nous conduit bien davantage nous pencher sur ce qui les r unit plut t que ce qui les diff rencie C est leur multiplicit qui a pr sid cet ouvrage et qui en fait nous l esp rons son ori ginalit Nous mallons pas nous en plaindre et d fendons en revanche l id e que le choix d finitif de l un ou l autre de ces langages d pend davantage d habitude d environnement professionnel ou d enseignement de questions sociales et conomiques et surtout de la raison concr te de cette utilisa tion p dagogie performance machine ad quation web ou base d
7. r cemment pour le d veloppement d applications tournant sur les smartphones et tablettes dot s du syst me Android maintenu par Google IBM et Borland avec Rational et Together menaient la danse en mati re d outils d analyse du d veloppement logiciel avec la mise au point de puissants environnements UML Chez IBM la plate forme logicielle Eclipse est sans doute ce jour une des aventures Open Source les plus abouties en mati re d OO Comme environnement de d veloppement Java Eclipse est aujourd hui le plus pris et le plus usit et cherche gagner son pari d clipser tous les autres Borland a rendu Together int grable tant dans Visual Studio Net que dans Eclipse comme outil synchronisant au mieux et au plus la programmation et la r alisation des diagrammes UML Enfin OMG organisme de standardisation du monde logiciel n a pas pour rien la lettre O comme initiale UML et Corba sont ses premi res productions la version OO de l analyse logicielle et la version OO de l informatique distribu e Cet organisme plaide de plus en plus pour un d veloppe ment informatique d tach des langages de programmation ainsi que des plates formes mat rielles par l utilisation intensive des diagrammes UML Partant de ces m mes diagrammes les codes seraient cr s automatiquement dans un langage choisi et en ad quation avec la technologie voulue Le pari d UML est os et encore tr s largement controvers mais l vo
8. respecte galement des principes de confinement et d acc s limit dits d encapsulation l objet n expose qu une partie restreinte de ses services cette r partition modulaire a galement l insigne avantage de favoriser la stabilit des d veloppements En effet elle restreint au maximum les cons quences de modifications apport es au code au cours du temps seuls les objets concern s sont modifi s pas leurs interlocuteurs m me si le comportement de ces derniers d pend indirec tement des fonctionnalit s affect es Ces am liorations r sultant de la prise de conscience des probl mes pos s par l industrie du logiciel complexit accrue et stabilit d grad e ont enrichi la syntaxe des langages objet Un autre m ca nisme de modularisation inh rent l orient objet est l h ritage qui permet la programmation de refl ter l organisation taxonomique de notre connaissance en une hi rarchie de concepts du plus au moins g n ral nouveau cette organisation modulaire en objets g n riques et plus sp cialistes est Avant propos RTE l origine d une simplification de la programmation d une conomie d criture et de la cr ation de zones de code aux modifications confin es Tant cet h ritage que la r partition des t ches entre les objets autorisent une d composition plus naturelle des probl mes une r utilisation facilit e des codes d j existants tout module peut se pr ter pl
9. 6e Hugues Bersini CG 1o 4i La programmation orient e objet Cours et exercices en UML 2 avec Java C C Python PHP et LINQ EYROLLES Groupe Eyrolles 2002 2004 2007 2009 2011 et 2013 pour la prl ente Edition ISBN 978 2 212 13578 7 Avant propos Aux tout d buts de l informatique le fonctionnement interne des processeurs d cidait de la seule mani re efficace de programmer un ordinateur Alors que l on acceptait tout programme comme une suite logique d instructions il tait admis que l organisation du programme et la nature m me de ces instructions ne pouvaient s loigner de la fa on dont le processeur les ex cutait pour l essentiel des modifications de donn es m moris es des d placements de ces donn es d un emplacement m moire un autre des op rations d arithm tique et de logique l mentaire et de possibles ruptures de s quence ou branchements La mise au point d algorithmes complexes d passant les simples op rations math matiques et les simples op rations de stockage et de r cup rations de donn es obligea les informaticiens effectuer un premier saut dans l abstrait en inventant un style de langage dit proc dural auquel appartiennent les langages Fortran Cobol Basic Pascal C Les codes crits dans ces langages sont devenus ind pendants des instructions l mentaires propres chaque type de processeur Gr ce eux les informa tic
10. des biceps ou des mollets De surcro t cette pratique de la programmation incite cette d coupe suivant deux dimensions orthogonales horizonta lement les classes se d l guant mutuellement un ensemble de services verticalement les classes h ri tant entre elles d attributs et de m thodes install s diff rents niveaux d une hi rarchie taxonomique Pour chacune de ces dimensions reproduisant fid lement nos m canismes cognitifs de conceptualisa tion en plus de simplifier l criture des codes il est important de faciliter la r cup ration de ces parties dans de nouveaux contextes et d assurer la robustesse de ces parties aux changements survenus dans d autres Un code OO id alement sera aussi simple cr er qu maintenir r cup rer et faire voluer Il nest pas pertinent d opposer le proc dural POO car in fine toute programmation des m thodes c est dire la partie active des classes et des objets reste totalement tributaire des m canismes proc duraux On y rencontre des variables des arguments des boucles des fonctions et leurs param tres des instructions conditionnelles tout ce que l on trouve classiquement dans les bo tes outils proc durales LOO vient plut t compl ter le proc dural en lui superposant un sys t me de d coupe plus naturel et facile mettre en uvre Pour preuve les langages proc duraux comme le C Cobol ou plus r cemment PHP se sont relativement ais ment en
11. e donn es Quelques amabilit s glan es dans Masterminds of Programming Bjarne Stroustrup cr ateur du C J avais pr dit que s il voulait percer Java serait contraint de cro tre significativement en taille et en complexit Il l a fait Guido van Rossum cr ateur de Python Je dis qu une ligne de Python de Ruby de Perl ou de PHP quivaut 10 lignes de Java Tom Love co cr ateur d Objective C le langage OO de pr dilection pour le d veloppement des applications Apple et plus r cemment IPhone IPod et autres smartphones Tant Objective C que C sont n s au d part du langage C Dans le premier cas ce fut un petit langage simple l gant net et bien d fini dans l autre ce fut une abomination hyper compliqu e et pr sentant de v ritables d fauts de conceptions James Gosling cr ateur de Java Les pointeurs en C sont un d sastre une v ritable incitation program mer de mani re erron e et C a tout pomp sur Java l exception de la s ret et de la fiabilit par la prise en charge de pointeurs dangereux qui m apparaissent comme grotesquement stupides Anders Hejlsberg cr ateur de C Je ne comprends pas pourquoi Java a choisi de ne pas voluer Si vous regardez l histoire de l industrie tout n est qu une question d volution la minute o vous arr tez d voluer vous signez votre arr t de mort James Rumbaugh un des trois concepteurs d UML
12. e type de lan gages de programmation f tant ses 45 ans d existence lantiquit l chelle informatique les langages orient s objet tels Simula Smalltalk C Eiffel Java C Delphi Power Builder Python et bien d autres L orientation objet 00 en quelques mots la diff rence de la programmation proc durale un programme crit dans un langage objet r partit l effort de r solution de probl mes sur un ensemble d objets collaborant par envoi de mes sages Chaque objet se d crit par un ensemble d attributs partie statique et de m thodes portant sur ces attributs partie dynamique Certains de ces attributs tant l adresse des objets avec les quels les premiers coop rent il leur est possible de d l guer certaines des t ches leurs collabora teurs Le tout s op re en respectant un principe de distribution des responsabilit s on ne peut plus simple chaque objet s occupant de ses propres attributs Lorsqu un objet exige de s informer sur les attributs d un autre ou de les modifier il charge cet autre de s acquitter de cette t che En effet chaque objet expose ses interlocuteurs un mode d emploi restreint une carte de visite limit e aux seuls services qu il est apte assurer et continuera rendre dans le temps malgr de possibles modifications dans la r alisation concr te de ces services Cette programmation est fondamentalement distribu e modularis e et d centralis e Pour autant qu elle
13. ez large industriels enseignants et tudiants mais sa vocation premi re n en reste pas moins une initiation la programmation orient e objet Ce livre sera un compagnon d tude enrichissant pour les tudiants qui comptent la programmation objet dans leur cursus d tude et toutes technologies s y rapportant Java C C Python PHP Corba RMI services web UML LINQ Il devrait les aider le cas ch ant voluer de la programmation pro c durale la programmation objet pour aller ensuite vers toutes les technologies s y rapportant Nous ne pensons pas en revanche que ce livre peut seul pr tendre constituer une porte d entr e dans le monde de la programmation tout court Comme dit pr c demment nous estimons qu il est id al d aborder en m me temps les m canismes OO et proc duraux Pour des raisons videntes de place et car les librairies informatiques en regorgent d j nous avons fait l impasse d un ensei gnement de base des m canismes proc duraux variables boucles instructions conditionnelles l ments fondamentaux et compagnons indispensables l assimilation de POO Nous pensons d s lors que ce livre sera plus facile aborder pour des lecteurs ayant d j un peu de pratique de la programmation dite proc durale et ce dans un quelconque langage de programmation Finale ment pr cisons que s il ne pretend pas tre exhaustif et bien qu sa 6e dition il r siste assez
14. iens ont pris quelques distances par rapport aux processeurs en ne travaillant plus directement partir des adresses m moire et en vitant la manipulation directe des instructions l mentaires et ont labor une criture de programmes plus proche de la mani re naturelle de poser et de r soudre les probl mes Il est incontestablement plus simple d crire c a b qu une suite d instructions telles que load a reg1 load b reg2 add reg3 regl reg2 move c reg3 ayant pour tant la m me finalit Une op ration de traduction automatique dite de compilation se charge de traduire le programme crit au d part avec ces nouveaux langages dans les instructions l mentaires seules comprises par le processeur La mont e en abstraction permise par ces langages de programmation pr sente un double avantage une facilit d criture et de r solution algorithmique ainsi qu une ind pendance accrue par rapport aux diff rents types de processeur existant aujourd hui sur le march Le programmeur se trouve lib r des d tails d impl mentation machine et peut se concentrer sur la logique du pro bl me et ses voies de r solution Plus les probl mes affronter gagnaient en complexit comptabilit jeux automatiques com pr hension et traduction des langues naturelles aide la d cision bureautique conception et enseignement assist s programmes graphiques etc plus l architecture et le fonctionneme
15. le est la voie la plus naturelle pour la compr hension des m canismes de base extraction du concept par la multiplication des exemples La troisi me partie reprend dans le droit fil des ouvrages d di s l un ou l autre langage objet des notions jug es plus avanc es les objets distribu s Corba RMI les services web chapitre 16 le multithreading ou programmation parall le ou concurrentielle chapitre 17 la programmation v nementielle chapitre 18 et enfin la sauvegarde des objets sur le disque dur y compris l interfa age entre les objets et les bases de donn es relationnelles chapitre 19 L encore le lecteur se trouvera le plus souvent en pr sence de plusieurs versions dans les cinq langages de ces m ca nismes La nouvelle plate forme LINQ de Microsoft s y trouve abord e car elle propose une mani re radicalement neuve de penser la mise en correspondance entre les objets et les informa tions stock es sous forme relationnelle ou XML La quatri me partie d crit plusieurs projets de programmation objet totalement aboutis tant en UML qu en Java Elle inclut d abord le chapitre 20 d crivant la mod lisation objet d un petit flipper et d un RTE La programmation orient e objet petit tennis ainsi que les probl mes de conception orient e objet que cette mod lisation pose Le chapitre 21 li au chapitre 22 d crit la mani re dont les objets peuvent s organiser en liste li e ou en graphe
16. lution de l informatique au cours des ans a toujours confi des m canismes automatis s le soin de prendre en charge des d tails qui loignaient le programmeur de sa mission premi re penser et r soudre son probl me Objectifs de l ouvrage Toute pratique conome fiable et l gante de Java C C Python PHP ou UML requiert pour d buter une bonne ma trise des m canismes de base de POO Et pour y pourvoir rien nest mieux que d exp rimenter les technologies OO dans ces diff rentes versions comme un bon con ducteur qui se sera frott plusieurs types de v hicules un bon skieur plusieurs styles de skis et un guitariste plusieurs mod les de guitares En La programmation orient e objet Plut t qu un voyage en profondeur dans l un ou l autre de ces multiples territoires ce livre vous propose d explorer plusieurs d entre eux mais en tentant chaque fois de d voiler ce qu ils rec lent de commun Car ce sont ces ressemblances qui constituent les briques fondamentales de POO Nous pensons que la mise en parall le de C Java C Python PHP 5 et UML est une voie pri vil gi e pour l extraction de ces m canismes de base Il nous a paru pour cette raison indispensable de discuter et comparer la fa on dont ces cinq langages de programmation g rent par exemple l occupation m moire par les objets leur mani re d impl menter le polymorphisme ou la programmation dite g n rique
17. nn es leur fonctionnement en parall le et leur communication travers Internet Ce faisant nous acceptons de perdre un peu en pr cision et il nous appara t n cessaire de mettre en garde le lecteur Ce livre n aborde aucune des technologies en profondeur mais les approche toutes dans ce qu elles ont de commun et qui se devrait de survivre pour des si cles et des si cles Plan de l ouvrage Les 23 chapitres de ce livre peuvent se r partir en cinq grandes parties Le premier chapitre constitue une partie en soi car il a pour importante mission d initier aux briques de base de la programmation orient e objet sans aucun d veloppement technique une premi re esquisse teint e de sciences cognitives et toute en intuition des l ments essentiels de la pratique OO La deuxi me partie int gre les quatorze chapitres suivants Il s agit pour chacun d entre eux de d crire plus techniquement cette fois ces briques de base objet classe chapitres 2 et 3 mes sages et communication entre objets chapitres 4 5 et 6 encapsulation chapitres 7 et 8 gestion m moire des objets chapitre 9 mod lisation objet chapitre 10 h ritage et polymorphisme chapitres 11 et 12 classe abstraite chapitre 13 clonage et comparaison d objets chapitre 14 interface chapitre 15 Chacune de ces briques est illustr e par des exemples en Java C C Python PHP 5 et UML Nous y faisons le pari que cette mise en parall
18. nt des processeurs semblaient contraignants Il devenait vital d inventer des m canismes informatiques simples mettre en uvre pour r duire cette complexit et rapprocher encore plus l criture de programmes des mani res humaines de poser et r soudre les probl mes RE La programmation orient e objet Avec l intelligence artificielle l informatique s inspira de notre mode cognitif d organisation des connaissances comme un ensemble d objets conceptuels entrant dans un r seau de d pendance et se structurant de mani re taxonomique Avec la syst mique ou la bioinformatique l informatique nous r v la qu un ensemble d agents au fonctionnement l mentaire mais s influen ant mutuelle ment peut produire un comportement mergent d une surprenante complexit lorsqu on observe le syst me dans sa globalit D s lors pour comprendre jusqu reproduire ce comportement par le biais informatique la meilleure approche consiste en une d coupe ad quate du syst me en ses par ties et une attention limit e au fonctionnement de chacune d entre elles Tout cela mis ensemble la n cessaire distanciation par rapport au fonctionnement du processeur la volont de rapprocher la programmation du mode cognitif de r solution de probl me les per c es de l intelligence artificielle et de la bio informatique le d coupage comme voie de simplifica tion des syst mes apparemment complexes conduisit graduellement un deuxi m
19. ord passer par un enseigne ment intensif et une ma trise parfaite du proc dural avant de faire le grand saut vers POO Mais vingt ann es d enseignement de la programmation des tudiants de tous ges et de toutes condi tions issus des sciences humaines ou exactes nous ont convaincus qu il n y a aucun ordre donner De m me qu historiquement POO est n quasiment en m me temps que le proc dural et en com pl ment de celui ci POO doit s enseigner conjointement et en compl ment du proc dural Il faut enseigner les instructions de contr le en m me temps que la d coupe en classes L enseignement de la programmation doit m langer loisir la perception micro des m canismes proc duraux la vision macro de la d coupe en objets Aujourd hui tout projet informatique de dimension cons quente d bute par une analyse des diff rentes classes qui le constituent Il faut aborder l enseignement de la programmation tout comme d bute la prise en charge de ce type de projet en enseignant au plus vite la mani re dont ces classes et les objets qui en r sultent op rent l int rieur d un programme Ces derni res ann es comp tition oblige lorient objet s est trouv l origine d une explosion de technologies diff rentes mais toutes int grant leur mani re ses m canismes de base classes objets envois de messages h ritage encapsulation polymorphisme Ainsi sont apparus de nom breux langages
20. richis d une couche dite OO sans que cette addition ne remette s rieusement en question l existant Cependant l effet de cette couche additionnelle ne se limite pas quelques structures de donn es sup pl mentaires afin de mieux organiser les informations manipul es par le programme Il va bien au del C est toute une mani re de concevoir un programme et la r partition de ses parties fonctionnelles qui est en jeu Les fonctions et les donn es ne sont plus d un seul tenant mais clat es en un ensemble de modules reprenant chacun son compte une sous partie de ces donn es et les seules fonctions qui les manipulent Il faut r apprendre programmer en s essayant au d veloppement d une succession de micro programmes et au couplage soign et r duit au minimum de ces micro programmes En d coupant 1 000 lignes de code en 10 modules de 100 lignes le gain est bien plus que lin aire car il est extraordinairement plus simple de programmer 100 lignes plut t que 1 000 En subs RTE La programmation orient e objet tance la programmation OO pourrait reprendre son compte ce slogan altermondialiste agir localement penser globalement Se pose alors la question de tactique didactique tr s controvers e dans l enseignement de l informa tique aujourd hui sur l ordre dans lequel enseigner proc dural et OO De nombreux enseignants soutenus en cela par de tr s nombreux manuels consid rent qu il faut d ab
21. usieurs assemblages et une maintenance facilit e et all g e de ces derniers L orientation objet s impose non pas comme une panac e universelle mais comme une volution naturelle de la programmation proc durale qui facilite l criture de pro grammes les rendant plus g rables plus compr hensibles plus stables et mieux r exploitables Lorient objet inscrit la programmation dans une d marche somme toute tr s classique pour affronter la complexit de quelque probl me qui soit une d coupe naturelle et intuitive en des parties plus sim ples A fortiori cette d coupe sera d autant plus intuitive qu elle s inspire de notre mani re cognitive de d couper la r alit qui nous entoure Lh ritage reflet fid le de notre organisation cognitive en est le t moignage le plus clatant L approche proc durale rendait cette d coupe moins naturelle plus forc e Si de nombreux adeptes de la programmation proc durale sont en effet conscients qu une mani re incontournable de simplifier le d veloppement d un programme complexe est de le d couper physiquement ils souffrent de l absence d une prise en compte naturelle et syntaxique de cette d coupe dans les langages de programmation utilis s Dans un programme imposant TOO aide tracer les pointill s que les ciseaux doivent suivre l o il semble le plus naturel de les tracer au niveau du cou des paules ou de la ceinture et non pas au niveau des sourcils
Download Pdf Manuals
Related Search
Related Contents
Port Settings - D-Link Store Украина Sharp MX-4140N Government Compliance Téléchargement (pdf, 170 Ko) PHANTOM 740 - TheShafers.net FujiFilm 16215102 Digital Camera User Manual Bretford 7022-M projection screen User Manual Samsung WF0790NCX User Manual Copyright © All rights reserved.
Failed to retrieve file