August 03, 2003

Design Patterns

In first post you will see overview and categories of Design Patterns. In subsequent posts each pattern is discussed in detail.


Design Patterns subject starts with the book (also know as “Gang of Four Book”) - “Design Patterns: Elements of Reusable Software Design” by Gamma, Helm, Johnson and Vlissides.

Design patterns are a very important design tool that aid in the development of large scale and complex systems. Design patterns provide a tried and tested solution framework to common problems faced by many system designers.

What are Design Patterns?

• Design Patterns represent the maturing of the software development process.

• How do we solve the same or similar problems effectively

• They are Strategic not Tactical

• A design pattern is essentially an approach to solve a common problem.

• Note that a pattern is merely an approach and a high level conceptual solution.

• A pattern does not assume knowledge of a particular feature in a particular language, platform or tool.

• A pattern merely presents the core solution; you need to tailor this approach to meet your specific system and environment.

According to “Gang of Four”, Design patterns can be broadly broken down into three different categories

· Creational – How an object is created

· Structural – How the class structure is defined

· Behavioral – How the objects are manipulated

Each Patten can be divided in sub-patterns:


1. Factory Method

2. Abstract Factory

3. Builder

4. Singleton

5. Prototype

1. Adapter

2. Bridge

3. Composite

4. Decorator

5. Fa├žade

6. Flyweight

7. Proxy

1. Chain of Responsibility

2. Iterator

3. Mediator

4. Memento

5. Observer

6. State

7. Template Model

8. Visitor

The best way to remember Creational pattern is by ABFPS
(Abraham Became First President of States).

To remember structural pattern best is (ABCDFFP)

Behavioral - Just remember Music....... 2 MICS On TV (MMIICCSSOTV).