Wednesday, May 28, 2008

Design Patterns

Design Patterns

Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Patterns are about design and interaction of objects, as well as providing a communication platform concerning elegant, reusable solutions to commonly encountered programming challenges.

Refernce site:- http://www.dofactory.com

Creational Patterns
Abstract Factory -Creates an instance of several families of classes
Builder -Separates object construction from its representation
Factory Method -Creates an instance of several derived classes
Prototype -A fully initialized instance to be copied or cloned
Singleton -A class of which only a single instance can exist

Structural Patterns
Adapter -Match interfaces of different classes
Bridge -Separates an object’s interface from its implementation
Composite -A tree structure of simple and composite objects
Decorator -Add responsibilities to objects dynamically
Facade -A single class that represents an entire subsystem
Flyweight -A fine-grained instance used for efficient sharing
Proxy -An object representing another object

Behavioral Patterns
Chain of Resp.- -A way of passing a request between a chain of objects
Command -Encapsulate a command request as an object
Interpreter -A way to include language elements in a program
Iterator -Sequentially access the elements of a collection
Mediator -Defines simplified communication between classes
Memento -Capture and restore an object's internal state
Observer -A way of notifying change to a number of classes
State -Alter an object's behavior when its state changes
Strategy -Encapsulates an algorithm inside a class
Template Method -Defer the exact steps of an algorithm to a subclass
Visitor -Defines a new operation to a class without change