Once upon a time computer memory was one of the most expensive commodities on earth, and large amounts of human ingenuity were spent trying to simulate supernova explosions with nothing more than a future Nobel prize winner and a vast array of vacuum tubes. Nowadays many people have enough computer memory to simulate the destruction of most of the galaxy in any one of their hand-held phones, digital diaries, or microwave ovens.
But at least two things have remained constant throughout the history of computing. Software design remains hard (Gamma et al. 1995), and its functionality still expands to fill the memory available (Potter 1948). This book addresses both these issues. Patterns have proved a successful format to capture knowledge about software design; these patterns in particular tackle memory requirements.
As authors we had several additional aims in writing this book. As patterns researchers and writers we wanted to learn more about patterns and pattern writing, and as software designers and architects we wanted to study existing systems to learn from them. In particular:
This book is the result. It's written for
software developers and architects, like ourselves, whether or not
you happen to be facing memory constraints in your immediate
To make the book more approachable (and more fun to
write) we've taken a light-hearted slant in most of our examples for
the patterns and with Duane Bibby's cartoons. If frivolity doesn't
appeal to you, please ignore the cartoons and the paragraphs
describing the examples: the remaining text is as rigorous as we can
This book is still a work in progress. We have
incorporated the comments of many people, and we welcome more. You
can contact us by email: Charles