Product Cover Image

Cocoa Design Patterns

By Erik Buck, Donald Yacktman

Published by Addison-Wesley Professional

Published Date: Sep 1, 2009


“Next time some kid shows up at my door asking for a code review, this is the book that I am going to throw at him.”


–Aaron Hillegass, founder of Big Nerd Ranch, Inc., and author of Cocoa Programming for Mac OS X


Unlocking the Secrets of Cocoa and Its Object-Oriented Frameworks


Mac and iPhone developers are often overwhelmed by the breadth and sophistication of the Cocoa frameworks. Although Cocoa is indeed huge, once you understand the object-oriented patterns it uses, you’ll find it remarkably elegant, consistent, and simple.


Cocoa Design Patterns begins with the mother of all patterns: the Model-View-Controller (MVC) pattern, which is central to all Mac and iPhone development. Encouraged, and in some cases enforced by Apple’s tools, it’s important to have a firm grasp of MVC right from the start.


The book’s midsection is a catalog of the essential design patterns you’ll encounter in Cocoa, including

  • Fundamental patterns, such as enumerators, accessors, and two-stage creation
  • Patterns that empower, such as singleton, delegates, and the responder chain
  • Patterns that hide complexity, including bundles, class clusters, proxies and forwarding, and controllers

And that’s not all of them! Cocoa Design Patterns painstakingly isolates 28 design patterns, accompanied with real-world examples and sample code you can apply to your applications today. The book wraps up with coverage of Core Data models, AppKit views, and a chapter on Bindings and Controllers.


Cocoa Design Patterns clearly defines the problems each pattern solves with a foundation in Objective-C and the Cocoa frameworks and can be used by any Mac or iPhone developer.

Table of Contents

Preface     xix

Part I: One Pattern to Rule Them All     1

Chapter 1: Model View Controller     2

Chapter 2: MVC Analyzed and Applied     17

Part II : Fundamental Patterns     28

Chapter 3: Two-Stage Creation     29

Chapter 4: Template Method     43

Chapter 5: Dynamic Creation     53

Chapter 6: Category     63

Chapter 7: Anonymous Type and Heterogeneous Containers     77

Chapter 8: Enumerators     85

Chapter 9: Perform Selector and Delayed Perform     99

Chapter 10: Accessors     107

Chapter 11: Archiving and Unarchiving     123

Chapter 12: Copying     135

Part III: Patterns That Primarily Empower by Decoupling     147

Chapter 13: Singleton     148

Chapter 14: Notifications     159

Chapter 15: Delegates     175

Chapter 16: Hierarchies     191

Chapter 17: Outlets, Targets, and Actions     206

Chapter 18: Responder Chain     220

Chapter 19: Associative Storage     232

Chapter 20: Invocations     242

Chapter 21: Prototype     255

Chapter 22: Flyweight     263

Chapter 23: Decorators     268

Part IV: Patterns That Primarily Hide Complexity     274

Chapter 24: Bundles     275

Chapter 25: Class Clusters     282

Chapter 26: Façade     302

Chapter 27: Proxies and Forwarding     312

Chapter 28: Managers     328

Chapter 29: Controllers     337

Part V : Practical Tools for Pattern Application     364

Chapter 30: Core Data Models     365

Chapter 31: Application Kit Views     379

Chapter 32: Bindings and Controllers     393

Appendix: Resources     404

Index     407



Cocoa Design Patterns

Add to Cart

$54.99 | ISBN-13: 978-0-321-53502-3

Free Ground Shipping.