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.
The Gang of Four (GoF) patterns are generally considered the foundation for
all other patterns. They are categorized in three groups: Creational,
Structural, and Behavioral.
Creational Patterns
Creational class patterns
defer some part of object creation to subclasses, while Creational object
patterns defer to another object.
- 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 initialised instance to be copied or
cloned
- Singleton – A class of which only a single instance can
exist
Structural Patterns
The Structural class patterns
use inheritance to compose classes, while the Structural object patterns
describe ways to assemble objects.
- 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
- Façade – A single class that represents an entire subsystem
- Flyweight – A fine-grained instance used for efficient
sharing
- Proxy – An object representing another object
Behavioural Patterns
The Behavioural class
patterns use inheritance to describe algorithms and flow of control, whereas the
Behavioural object patterns describe how a group of objects co-operate to
perform a task that no single object can carry out alone.
- Chain of Responsibility – 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 behaviour when its state changes
The Architecture JOURNAL 5 has been published.
Articles in This Issue
In the service economy, we expect service-oriented systems to emerge that are increasingly large and complex, but that are also capable of behaviors that are increasingly differentiated. As we shall see, this is one of the key challenges of Service Oriented Architecture (SOA), and is discussed in this article.
This article introduces the ISO international standard Topic Maps. The topic maps paradigm describes a way in which complex relationships between abstract concepts and real-world resources can be described and interchanged using a standard XML syntax.
Use value models to create effective high-level architecture strategies with information provided in this article.
This article describes a proven approach to assist architects with evaluating enterprise application integration technologies. In particular, we focus our discussion on evaluating integration technologies, for implementing services-based integration.
In this article we explore one service-oriented approach for enabling Internet-scale, high-performance computing (HPC) applications.
Is HTTP a great fit for every Web Services issue that exists today? This article reviews scenarios in which alternate transports for Web Services may offer a better solution over HTTP.
Sign Up for a Free Subscription to The Architecture Journal.
Other Issues
Microsoft Architecture Journal 4
Microsoft Architecture Journal 3
Microsoft Architecture Journal 2
Microsoft Architecture Journal 1
-- Mihir
The Strategy Pattern
The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
Design Puzzle 1 Solution (Designed with Visual Studio 2005 Class Designer)

Comments here