In 1994, Helm, Gamma, Vlissides, and Johnson articulated for the computer science community the concept of design patterns through 23 examples in their groundbreaking Design patterns book . Since that event, patterns have become a popular subject in programming books. In 2011, Carlo Chung rehashes 21 of the original 23 patterns (State and Interpreter have been dropped for reasons unspecified) for the iOS community. Just as Hollywood sometimes graces the movie-going public with the remake of a 20-year-old classic according to the fashion of a more current taste, it appears Apress has decided it was time to try something similar in the computer science publishing trade.
This book hearkens back to Buck and Yacktman’s 2009 publication of Cocoa design patterns . Neither that nor this work is for beginners. While Buck and Yacktman spend many pages describing the patterns used in the design of Cocoa, Chung instead focuses on explaining how to use 21 general-purpose patterns to accomplish your own coding objectives. To this end, in the context of iOS, Chung uses a sample application (a touch-enabled scribbling app) and preaches design parables involving plumbers, rubber stamps, and public transportation. He provides ad hoc (that is, not part of the sample application) design problems relevant to teaching one or another point, and he gives examples in Objective-C, showing how to implement all of the above.
There is precious little, if any, new material in this book. The known material is revisited with a teaching style that may or may not endear Chung’s work to the reader. Why would one choose to read this book instead of, say, the work of Helm et al. ? If you are not familiar with patterns, but are familiar with Objective-C, this book could be an easy introduction to patterns, a subject that is now essential background knowledge for the software development professional. If you are familiar with patterns, and are somewhat experienced yet not very proficient in Objective-C programming, the coded examples could provide an interesting way to improve your mastery of this programming language. If you find the writing of Helm et al.  insufferable and obstreperous, then Chung’s may be a possible alternative. This is, however, not a book to read in the hope of gaining a greater understanding of the larger subject of patterns, as severe disappointment is guaranteed to follow.
The book is organized in 23 chapters. The first chapter is a very quick introduction to patterns and to Objective-C. The second chapter is an overview of designing an app with Cocoa Touch. This overview will be fleshed out in many, but not all, of the following chapters. (The progression could appear at times disconnected.) The next 21 chapters address one design pattern each, and are organized in 8 groups: “Object Creation” (Prototype, Factory Method, Abstract Factory, Builder, Singleton), “Interface Adaptation” (Adapter, Bridge, Facade), “Decoupling of Objects” (Mediator, Observer), “Abstract Collection” (Composite, Iterator), “Behavioral Extension” (Visitor, Decorator, Chain of Responsibility), “Algorithm Encapsulation” (Template Method, Strategy, Command), “Performance and Object Access” (Flyweight, Proxy), and “State of Object” (Memento). The taxonomy used and the explanation of the patterns and their use are a little different from that of other works. “Better” remains in the eye of the beholder...