Design Patterns

A pattern is a reusable solution that can be applied to commonly occurring problems in software design. Design patterns have three main benefits as in the following.
  • Provide solid approaches to solving issues in software development using proven techniques. 
  • Usually reflects an out of box solution that can be adapted to suit our needs 
  • Helps with expressing larger solutions elegantly
Design Patterns can be categorized in to three main categories as in the following.

Creational PatternsBased on the concept of creating an object

o   Abstract Factory
Creates an instance of several families of classes
o   Factory Method
Creates an instance of several derived classes
o   Prototype
A fully initialized instance to be copied or cloned
o   Singleton
A class of which only a single instance can exist
 Structural PatternsBased on the idea of building blocks of objects

o   Adapter
Match interfaces of different classes
o   Bridge
Separates an object’s interface from its implementation
o   Composite
A tree structure of simple and composite objects

Behavioral PatternsBased on the way object play and work together

o   Mediator
Defines simplified communication between classes
o   Observer
A way of notifying change to a number of classes
o   Template Method
Defer the exact steps of an algorithm to a subclass


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s