February 9th, 2005, 11:07 AM

C++ Design Pattern: What is a Design Pattern?


Q: What is a Design Pattern?


A: Design Patterns represent solutions to problems what arise when developing software within a particular context.


Quote:

Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.

C. Alexander, The Timeless Way of Building, 1979

Quote:

Patterns help you learn from other's successes, instead of your own failures.

Mark Johnson (cited by Bruce Eckel)


Q: How many types of design patterns exist?


A: Basically, there are three categories:


  • Creational Patterns: deal with initializing and configuring classes and objects
  • Structural Patterns: deal with decoupling the interface and implementation of classes and objects
  • Behavioral Patterns: deal with dynamic interactions among societies of classes and objects


[CodeGuru]C++ Design Pattern: What is a Design Pattern?_java



Q: What are good books about design patterns.


A: Here are some must-have books:


  • Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (also known as Gang of Four)
  • Thinking in Patterns with Java, by Bruce Eckel
  • Thinking in Patterns with C++, by Bruce Eckel



Q: How can I quickly find information about a design pattern?


A: Here are some links on the web:


General

  • Design Patterns



Creational Patterns


  • Abstract Factory: Creates an instance of several families of classes


resource 1resource 2


Builder: Separates object construction from its representation

  • resource 1
  • resource 2


Factory Method: Creates an instance of several derived classes

  • resource 1
  • resource 2
  • resource 3


Prototype: A fully initialized instance to be copied or cloned

  • resource 1
  • resource 2


Singleton: A class of which only a single instance can exist

  • resource 1
  • resource 2





Structural Patterns


Behavioral Patterns




Last edited by Andreas Masur; July 27th, 2005 at 01:00 PM.


cilu

View Public Profile

Visit cilu's homepage!

Find all posts by cilu


  #2    

February 11th, 2007, 11:38 AM


adiian

Junior Member


Join Date: Sep 2006Posts: 1



Re: C++ Design Pattern: What is a Design Pattern?


and more resources on (www.oodesign.com). Make sure you read the design principles, it's very usefull for understanding the desing patterns:


OO Design Principles:

​Open Close Principle​

​Dependency Inversion Principle​

​Interface Sergregation Principle​

​Single Responsibility Principle​

​Liskov's Substitution Principle​



Creational Patterns:

​Singleton​

​Factory​

​Factory Method​

​Abstract Factory​

​Builder​

​Prototype​

​Object Pool​


Behavioral Patterns:

​Chain of Responsibility​

​Command​

​Interpreter​

​Iterator​

​Strategy​

​Template Method​

​Visitor​