Tuesday, November 22, 2011

What are Design Patterns?

A Software design pattern provides us a general solution to a common problem in software design.

It is a description or template for how to solve a problem.

Large majority of Software development teams tend to face similar problems in Software development.

Patterns provide us reusable solutions to commonly encountered programming challenges

This helps us speed up the Design and overall Development Time and Effort thereby resulting in cost savings. At the same time since these patterns are time tested they provide solutions with known benefits and drawbacks. Over a period of time patterns get improvised and new patterns emerge.

There are various types of Software Design Patterns:

Design patterns can be classified based on multiple criteria, the most common of which is the basic underlying problem they solve.

List below are some of the most important categories of Software Design Patterns:
A) Creational patterns:Creational design patterns deal with object creation mechanisms.
* Factory Method
* Abstract Factory
* Builder
* Prototype
* Singleton

B) Structural patterns: Structural design patterns focus on relationships/interfaces between entities and objects.
* Adapter
* Bridge
* Composite
* Proxy


C) Behavioral patterns: Behavioral design patterns focus on common communication patterns between objects.
* Iterator
* Observer

No comments:

Post a Comment