ptg5934432
Preface
Much of the technology embodied by Apple’s Cocoa software has been in commercial
use since 1988, and in spite of that maturity, Cocoa is still revolutionary.The technology
has been marketed with a variety of names including NEXTSTEP, OPENSTEP,
Rhapsody, and Yellow Box. It consists of a collection of reusable software frameworks
that contain objects and related resources for building Mac OS X desktop and mobile
applications. In recent years, Apple has expanded Cocoa dramatically and added new
software developer tools to increase programmer productivity beyond the already
famously high levels Cocoa already provided.
Programmers are often overwhelmed by the breadth and sophistication of Cocoa
when they first start using the frameworks. Cocoa encompasses a huge set of features, but
it’s also elegant in its consistency.That consistency results from the application of patterns
throughout Cocoa’s design. Understanding the patterns enables the most effective use of
the frameworks and serves as a guide for writing your own applications.
This book explains the object-oriented design patterns found in Apple’s Cocoa
frameworks. Design patterns aren’t unique to Cocoa; they’re recognized in many reusable
software libraries and available in any software development environment. Design pat-
terns identify recurring software problems and best practices for solving them.The pri-
mary goal of this book is to supply insight into the design and rationale of Cocoa, but
with that insight, you’ll be able to effectively reuse the tried and true patterns in your
own software—even if you aren’t using Cocoa.
What Is a Design Pattern?
Design patterns describe high quality practical solutions to recurring programming prob-
lems. Design patterns don’t require amazing programming tricks.They’re a toolbox of
reusable solutions and best practices that have been refined over many years into a suc-
cinct format.They provide a vocabulary, or shorthand, that programmers can use when
explaining complex software to each other. Design patterns don’t describe specific algo-
rithms or data structures like linked lists or variable length arrays, which are traditionally
implemented in individual classes.The design patterns in this book don’t describe specif-
ic designs for applications even though examples are provided.What the patterns do pro-
vide is a coherent map that leads you through the design of Cocoa itself. Patterns show
how and why some of the best and most reusable software ever created was designed the
way it was.
From the Library of Lee Bogdanoff