ebook img

Cocoa design patterns PDF

495 Pages·7.829 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Cocoa design patterns

e c n e r é f Les design patterns de é R Cocoa Erik M. Buck Donald A. Yacktman Réseaux et télécom Programmation Développement Web Sécurité Système d’exploitation Les design patterns de Cocoa Erik M. Buck Donald A. Yacktman Traduit par Hervé Soulard avec la contribution technique de Renaud Pradenc Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous four- nir une information complète et fiable. Cependant, Pearson Education France n’assume de respon- sabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation. Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descrip- tions théoriques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle. Pearson Education France ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l’utilisation de ces exemples ou programmes. Tous les noms de produits ou marques cités dans ce livre sont des marques déposées par leurs propriétaires respectifs. Publié par Pearson Education France Titre original : Cocoa Design Patterns 47 bis, rue des Vinaigriers 75010 PARIS Traduit de l’américain par Hervé Soulard, avec Tél. : 01 72 74 90 00 la contribution technique de Renaud Pradenc www.pearson.fr ISBN original : 978-0-321-53502-3 Copyright © 2010 Pearson Education, Inc. ISBN : 978-2-7440-4131-0 All rights reserved Copyright © 2010 Pearson Education France Tous droits réservés Édition originale publiée par Pearson Education www.pearsoned.com Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2° et 3° a) du Code de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Pearson Education France ou, le cas échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Table des matières Avant-propos ..................................................................................................................... IX Préface ............................................................................................................................... XI Qu’est-ce qu’un design pattern ?................................................................................... XI Pourquoi se focaliser sur les design patterns ?.............................................................. XIII Principes directeurs de la conception............................................................................ XIV Public du livre................................................................................................................ XVI Organisation du livre..................................................................................................... XVIII Conventions typographiques......................................................................................... XVIII Votre avis....................................................................................................................... XIX Télécharger le code........................................................................................................ XIX Remerciements .................................................................................................................. XXI À propos des auteurs ........................................................................................................ XXIII Partie I – Un pattern omniprésent 1 Modèle-Vue-Contrôleur ............................................................................................. 3 1.1 MVC dans Cocoa............................................................................................... 5 1.2 En résumé........................................................................................................... 19 2 Analyse et application de MVC ................................................................................. 21 2.1 Conception non MVC........................................................................................ 21 2.2 Conception MVC............................................................................................... 26 2.3 En résumé........................................................................................................... 32 Partie II – Patterns fondamentaux 3 Création en deux étapes ............................................................................................. 35 3.1 Motivation.......................................................................................................... 35 3.2 Solution.............................................................................................................. 37 3.3 Exemples dans Cocoa......................................................................................... 45 3.4 Conséquences..................................................................................................... 49 IV Table des matières 4 Patron de méthode ...................................................................................................... 51 4.1 Motivation.......................................................................................................... 52 4.2 Solution.............................................................................................................. 52 4.3 Exemples dans Cocoa......................................................................................... 55 4.4 Conséquences..................................................................................................... 59 5 Création dynamique ................................................................................................... 61 5.1 Motivation.......................................................................................................... 61 5.2 Solution.............................................................................................................. 62 5.3 Exemples dans Cocoa......................................................................................... 69 5.4 Conséquences..................................................................................................... 70 6 Catégorie ...................................................................................................................... 71 6.1 Motivation.......................................................................................................... 72 6.2 Solution.............................................................................................................. 72 6.3 Exemples dans Cocoa......................................................................................... 78 6.4 Conséquences..................................................................................................... 83 7 Type anonyme et Conteneur hétérogène .................................................................. 87 7.1 Motivation.......................................................................................................... 87 7.2 Solution.............................................................................................................. 88 7.3 Exemples dans Cocoa......................................................................................... 95 7.4 Conséquences..................................................................................................... 95 8 Énumérateur ............................................................................................................... 97 8.1 Motivation.......................................................................................................... 97 8.2 Solution.............................................................................................................. 98 8.3 Exemples dans Cocoa......................................................................................... 109 8.4 Conséquences..................................................................................................... 110 9 Exécution de sélecteur et Exécution retardée ........................................................... 111 9.1 Motivation.......................................................................................................... 112 9.2 Solution.............................................................................................................. 112 9.3 Exemples dans Cocoa......................................................................................... 117 9.4 Conséquences..................................................................................................... 119 10 Accesseur ..................................................................................................................... 121 10.1 Motivation.......................................................................................................... 122 10.2 Solution.............................................................................................................. 123 10.3 Exemples dans Cocoa......................................................................................... 134 10.4 Conséquences..................................................................................................... 137 Table des matières V 11 Archivage et désarchivage .......................................................................................... 139 11.1 Motivation.......................................................................................................... 140 11.2 Solution.............................................................................................................. 140 11.3 Exemples dans Cocoa......................................................................................... 143 11.4 Conséquences..................................................................................................... 150 12 Copie ............................................................................................................................ 153 12.1 Motivation.......................................................................................................... 153 12.2 Solution.............................................................................................................. 156 12.3 Exemples dans Cocoa......................................................................................... 158 12.4 Conséquences..................................................................................................... 164 Partie III – Patterns qui favorisent le découplage 13 Singleton ...................................................................................................................... 167 13.1 Motivation.......................................................................................................... 167 13.2 Solution.............................................................................................................. 168 13.3 Exemples dans Cocoa......................................................................................... 176 13.4 Conséquences..................................................................................................... 177 14 Notification .................................................................................................................. 179 14.1 Motivation.......................................................................................................... 180 14.2 Solution.............................................................................................................. 181 14.3 Exemples dans Cocoa......................................................................................... 187 14.4 Conséquences..................................................................................................... 193 15 Délégué ......................................................................................................................... 195 15.1 Motivation.......................................................................................................... 195 15.2 Solution.............................................................................................................. 199 15.3 Exemples dans Cocoa......................................................................................... 209 15.4 Conséquences..................................................................................................... 210 16 Hiérarchie .................................................................................................................... 211 16.1 Motivation.......................................................................................................... 211 16.2 Solution.............................................................................................................. 212 16.3 Exemples dans Cocoa......................................................................................... 224 16.4 Conséquences..................................................................................................... 225 17 Outlet, cible et action .................................................................................................. 227 17.1 Motivation.......................................................................................................... 228 17.2 Solution.............................................................................................................. 229 17.3 Exemples dans Cocoa......................................................................................... 237 17.4 Conséquences..................................................................................................... 241 VI Table des matières 18 Chaîne de répondeurs ................................................................................................. 243 18.1 Motivation.......................................................................................................... 243 18.2 Solution.............................................................................................................. 244 18.3 Exemples dans Cocoa......................................................................................... 254 18.4 Conséquences..................................................................................................... 255 19 Mémoire associative .................................................................................................... 257 19.1 Motivation.......................................................................................................... 257 19.2 Solution.............................................................................................................. 257 19.3 Exemples dans Cocoa......................................................................................... 261 19.4 Conséquences..................................................................................................... 265 20 Invocation .................................................................................................................... 267 20.1 Motivation.......................................................................................................... 267 20.2 Solution.............................................................................................................. 267 20.3 Exemples dans Cocoa......................................................................................... 280 20.4 Conséquences..................................................................................................... 280 21 Prototype ...................................................................................................................... 281 21.1 Motivation.......................................................................................................... 281 21.2 Solution.............................................................................................................. 282 21.3 Exemples dans Cocoa......................................................................................... 284 21.4 Conséquences..................................................................................................... 288 22 Poids mouche ............................................................................................................... 291 22.1 Motivation.......................................................................................................... 291 22.2 Solution.............................................................................................................. 291 22.3 Exemples dans Cocoa......................................................................................... 292 22.4 Conséquences..................................................................................................... 295 23 Décorateur ................................................................................................................... 297 23.1 Motivation.......................................................................................................... 298 23.2 Solution.............................................................................................................. 299 23.3 Exemples dans Cocoa......................................................................................... 300 23.4 Conséquences..................................................................................................... 302 Partie IV – Patterns qui masquent la complexité 24 Bundle .......................................................................................................................... 305 24.1 Motivation.......................................................................................................... 306 24.2 Solution.............................................................................................................. 306 24.3 Exemples dans Cocoa......................................................................................... 309 24.4 Conséquences..................................................................................................... 312 Table des matières VII 25 Regroupement de classes ............................................................................................ 313 25.1 Motivation.......................................................................................................... 314 25.2 Solution.............................................................................................................. 314 25.3 Exemples dans Cocoa......................................................................................... 319 25.4 Conséquences..................................................................................................... 331 26 Façade .......................................................................................................................... 333 26.1 Motivation.......................................................................................................... 334 26.2 Solution.............................................................................................................. 334 26.3 Exemples dans Cocoa......................................................................................... 337 26.4 Conséquences..................................................................................................... 342 27 Mandataire et Renvoi ................................................................................................. 343 27.1 Motivation.......................................................................................................... 343 27.2 Solution.............................................................................................................. 344 27.3 Exemples dans Cocoa......................................................................................... 357 27.4 Conséquences..................................................................................................... 358 28 Gestionnaire ................................................................................................................ 359 28.1 Motivation.......................................................................................................... 359 28.2 Solution.............................................................................................................. 359 28.3 Exemples dans Cocoa......................................................................................... 366 28.4 Conséquences..................................................................................................... 367 29 Contrôleur ................................................................................................................... 369 29.1 Motivation.......................................................................................................... 370 29.2 Solution.............................................................................................................. 370 29.3 Exemples dans Cocoa......................................................................................... 392 29.4 Conséquences..................................................................................................... 393 Partie V – Outils d’application des patterns 30 Modèles de Core Data ................................................................................................. 399 30.1 Rôle du sous-système Modèle............................................................................ 400 30.2 Terminologie de Core Data................................................................................ 401 30.3 Collaboration des patterns dans Core Data........................................................ 402 30.4 Limites et avantages de Core Data..................................................................... 413 31 Vues Application Kit ................................................................................................... 415 31.1 Rôle du sous-système Vue.................................................................................. 416 31.2 Collaboration des patterns dans Application Kit................................................ 416 31.3 Limites et avantages d’Application Kit.............................................................. 430 VIII Table des matières 32 Bindings et contrôleurs ............................................................................................... 433 32.1 Rôles des bindings et des contrôleurs................................................................. 434 32.2 Limites et avantages des bindings et des contrôleurs......................................... 444 Annexe A Ressources ..................................................................................................... 445 A.1 Documentation d’Apple..................................................................................... 445 A.2 Ouvrages............................................................................................................. 446 A.3 Listes de diffusion.............................................................................................. 447 A.4 Groupes d’utilisateurs......................................................................................... 447 A.5 Groupes en ligne................................................................................................. 447 A.6 Conférences........................................................................................................ 448 Index .................................................................................................................................. 449 Avant-propos Dans notre culture moderne, les vieux bonshommes grincheux sont bien souvent repré- sentés sans complaisance. Ils sont montrés en train de lancer des objets et de beugler des phrases du genre : "Hé, les gosses, foutez le camp de mon jardin !" En réalité, ils ont plutôt des paroles sensées comme : "Les enfants, vous devriez diversifier votre porte- feuille, on ne sait jamais." En tant que développeur d’applications Cocoa et Objective-C de longue date, je fais souvent office de vieux grincheux. Des programmeurs Cocoa débutants viennent me voir pour me dire : "Voici mon programme. Il fonctionne parfaitement. Voulez-vous examiner les sources ?" J’étudie le code et grogne alors : "C’est vrai, il fonctionne, mais ce n’est pas ainsi qu’il faut faire. Nous, les vieux programmeurs Cocoa grincheux, avons conçu un système et tu ne suis pas le système." Le jeune programmeur répond alors : "Très bien, mais pourquoi votre système est-il si formidable ?" Je bougonne : "Heu... eh bien... c’est comme ça ! Tais-toi et sors de mon bureau." Cet ouvrage répond à deux questions importantes : n Comment les vieux programmeurs Cocoa grincheux travaillent-ils ? n Pourquoi est-ce la bonne manière de faire ? En bataillant contre les mauvaises solutions, les vieux programmeurs Cocoa grincheux ont trouvé des solutions réellement bonnes à des problèmes de conception communs. Grâce à ce livre, vous n’aurez pas à souffrir des difficultés par lesquelles nous sommes passés. Erik M. Buck et Donald A. Yacktman ont gagné leur statut de vieux programmeurs Cocoa grincheux. Ils ont eu suffisamment de réussites et d’échecs à leur actif pour reconnaître une bonne conception Cocoa. En plus de présenter ces idiomes et ces tech- niques, Erik et Donald expliquent également les raisons de l’émergence de ces patterns dans la gabegie que représentait la programmation Objective-C il y a une dizaine d’années.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.