You are previewing Design Patterns in Ruby.
O'Reilly logo
Design Patterns in Ruby

Book Description

Praise for Design Patterns in Ruby

"Design Patterns in Ruby documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work."

—Steve Metsker, Managing Consultant with Dominion Digital, Inc.

"This book provides a great demonstration of the key 'Gang of Four' design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically 'dry' subject into such an engaging and even occasionally humorous read."

—Peter Cooper

"This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF's patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book."

—Mike Stok

"Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby."

—Rob Sanheim, Ruby Ninja, Relevance

Most design pattern books are based on C++ and Java. But Ruby is different—and the language's unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby's power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code.

After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language—enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and "mixins" for easier code reuse.

Fourteen of the classic "Gang of Four" patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You'll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require.

Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based "Convention Over Configuration" pattern, designed to help integrate entire applications and frameworks.

Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.

Table of Contents

  1. Title Page
  2. Copyright Page
  3. Praise for Design Patterns in Ruby
  4. Addison-Wesley Professional Ruby Series
  5. Contents
  6. Foreword
  7. Preface
  8. Acknowledgments
  9. About the Author
  10. Part I: Patterns and Ruby
    1. Chapter 1. Building Better Programs with Patterns
    2. Chapter 2. Getting Started with Ruby
  11. Part II: Patterns in Ruby
    1. Chapter 3. Varying the Algorithm with the Template Method
    2. Chapter 4. Replacing the Algorithm with the Strategy
    3. Chapter 5. Keeping Up with the Times with the Observer
    4. Chapter 6. Assembling the Whole from the Parts with the Composite
    5. Chapter 7. Reaching into a Collection with the Iterator
    6. Chapter 8. Getting Things Done with Commands
    7. Chapter 9. Filling in the Gaps with the Adapter
    8. Chapter 10. Getting in Front of Your Object with a Proxy
    9. Chapter 11. Improving Your Objects with a Decorator
    10. Chapter 12. Making Sure There Is Only One with the Singleton
    11. Chapter 13. Picking the Right Class with a Factory
    12. Chapter 14. Easier Object Construction with the Builder
    13. Chapter 15. Assembling Your System with the Interpreter
  12. Part III: Patterns for Ruby
    1. Chapter 16. Opening Up Your System with Domain-Specific Languages
    2. Chapter 17. Creating Custom Objects with Meta-programming
    3. Chapter 18. Convention Over Configuration
    4. Chapter 19. Conclusion
    5. Appendix A. Getting Hold of Ruby
    6. Appendix B. Digging Deeper
  13. Index
  14. Footnotes
    1. Chapter 1
    2. Chapter 2
    3. Chapter 3
    4. Chapter 4
    5. Chapter 5
    6. Chapter 7
    7. Chapter 8
    8. Chapter 9
    9. Chapter 10
    10. Chapter 11
    11. Chapter 12
    12. Chapter 13
    13. Chapter 14
    14. Chapter 15
    15. Chapter 16
    16. Chapter 17
    17. Chapter 18
    18. Chapter 19