Home > Articles > Programming

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Why Design Patterns?

A design pattern is a pattern—a way to pursue an intent—that uses classes and their methods in an object-oriented language. Developers often start thinking about design after learning a programming language and writing code for a while. You might notice that someone else's code seems simpler and works better than yours does, and you might wonder how that person achieves this simplicity. Design patterns are a level up from code and typically show how to achieve a goal, using one to ten classes. Other people have figured out how to program effectively in object-oriented languages. If you want to become a powerful Java programmer, you should study design patterns, especially those in Design Patterns.

TABLE 1.1: Books Conveying Software Development Wisdom in the Form of Patterns





Process Patterns: Building Large-Scale Systems Using Object Technology

Scott W. Ambler


More Process Patterns: Delivering Large-Scale Systems Using Object Technology

Scott W. Ambler


Analysis Patterns: Reusable Object Models

Martin Fowler


Object Models: Strategies, Patterns and Applications

Peter Coad

Mark Mayfield

David North


CORBA Design Patterns

Thomas J. Mowbray

Raphael C. Malveau


Core J2EE? Patterns: Best Practices and Design Strategies

Deepak Alur

John Crupi

Dan Malks


Pattern-Oriented Software _Architecture, Volume 1: A System of Patterns

Frank Buschmann

Regine Meunier

Hans Rohnert

Peter Sommerlad

Michael Stal


Pattern-Oriented Software _Architecture, Volume 2: Patterns for Concurrent and Networked Objects

Douglas Schmidt

Michael Stal

Hans Rohnert

Frank Buschmann


AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis

William J. Brown

Raphael C. Malveau

Hays W. McCormick III

Thomas J. Mowbray


Applying UML and Patterns, Second Edition

Craig Larman


Concurrent Programming in Java?, _Second Edition: Design Principles and Patterns

Doug Lea


Design Patterns

Erich Gamma

Richard Helm

Ralph Johnson

John Vlissides


Design Patterns for Object-Oriented Software Development

Wolfgang Pree


Pattern Hatching: Design Patterns Applied

John Vlissides


SanFranciso? Design Patterns

James Carey

Brent Carlson

Tim Graser


The Design _Patterns Smalltalk Co_mpanion

Sherman R. Alpert

Kyle Brown

Bobby Woolf


Smalltalk Best _Practice Patterns

Kent Beck


Java? Design _Patterns: A _Tutorial

James W. Cooper


Patterns in Java?, _Volume 1

Mark Grand


The Pattern Almanac 2000

Linda Rising


Pattern Languages of Program Design

James O. Coplien

Douglas C. Schmidt


Pattern Languages of Program Design 2

John M. Vlissides

James O. Coplien

Norman Kerth


Pattern Languages of Program Design 3

Robert C. Martin

Dirk Riehle

Frank Buschmann


Pattern Languages of Program Design 4

Neil Harrison

Brian Foote

Hans Rohnert

Design Patterns describes 23 design patterns—that is, 23 ways of pursuing an intent, using classes and objects in an object-oriented language. These are probably not absolutely the most useful 23 design patterns to know. On the other hand, these patterns are probably among the 100 most useful patterns. Unfortunately, no set of criteria establishes the value of a pattern, and so the identity of the other 77 patterns in the top 100 is a mystery. Fortunately, the authors of Design Patterns chose well, and the patterns they document are certainly worth learning.


You may have noted the potential confusion between design patterns the topic and Design Patterns the book. To distinguish between the topic and the book title, many speakers and some writers refer to the book as the "Gang of Four" book or the "GoF" book, referring to the number of its authors. In print, this distinction is not so confusing. Accordingly, this book avoids using the term "GoF."

  • + Share This
  • 🔖 Save To Your Account