Wiley Professional ASP.NET Design Patterns 978-0-470-29278-5 User Manual

Product codes
978-0-470-29278-5
Page of 12
4
 
 
ChaPter 1   
The PaTTern for SucceSSful aPPlicaTionS
DesIgn Patterns exPlaIneD
Design patterns are high-level abstract solution templates. Think of them as blueprints for solutions 
rather than the solutions themselves. You won’t find a framework that you can simply apply to your 
application; instead, you will typically arrive at design patterns through refactoring your code and 
generalizing your problem.
Design patterns aren’t just applicable to software development; design patterns can be found in all areas 
of life from engineering to architecture. In fact, it was the architect Christopher Alexander who intro-
duced the idea of patterns in 1970 to build a common vocabulary for design discussion. He wrote:
The elements of this language are entities called patterns. Each pattern describes a 
problem that occurs over and over again in our environment and then describes the 
core of the solution to that problem in such a way that you can use this solution a 
million times over without ever doing it the same way twice.
Alexander’s comments are just as applicable to software design as they are to buildings and town 
planning.
Origins
The origins of the design patterns that are prevalent in software architecture today were born from the 
experiences and knowledge of programmers over many years of using object-oriented programming lan-
guages. A set of the most common patterns were catalogued in a book entitled Design Patterns: Elements 
of Reusable Object-Oriented Software
, more affectionately known as the Design Patterns Bible. This 
book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, better known as 
the Gang of Four. 
They collected 23 design patterns and organized them into 3 groups:
Creational Patterns:
 These deal with object construction and referencing.
Structural Patterns:
 These deal with the relationships between objects and how they interact 
with each other to form larger complex objects.
Behavioral Patterns:
 These deal with the communication between objects, especially in terms 
of responsibility and algorithms.
Each pattern is presented in a template so readers can learn how to decipher and apply the pattern. 
We will be covering the practical knowledge necessary to use a design pattern template in Chapter 2 
along with a brief overview of each pattern that we will be looking at in the rest of this book.
necessity
Patterns are essential to software design and development. They enable the expression of intent 
through a shared vocabulary when problem solving at the design stage as well as within the source 
code. Patterns promote the use of good object-oriented software design, as they are built around 
solid object-oriented design principles. 
292785c01.indd   4
8/23/10   12:00:49 PM