About Patterns:
Patterns for software development
are one of the latest "hot topics" to emerge
from the object-oriented community. They are a literary
form of software engineering problem-solving discipline
that has its roots in a design movement of the same name
in contemporary architecture, literate programming, and
the documentation of best practices and lessons learned
in all vocations.
Fundamental to any science or engineering discipline
is a common vocabulary for expressing its concepts, and a
language for relating them together. The goal of
patterns within the software community is to create a
body of literature to help software developers resolve
recurring problems encountered throughout all of software
development. Patterns help create a shared language
for communicating insight and experience about these
problems and their solutions. Formally codifying these
solutions and their relationships lets us successfully
capture the body of knowledge which defines our
understanding of good architectures that meet the needs
of their users. Forming a common pattern language for
conveying the structures and mechanisms of our
architectures allows us to intelligibly reason about them.
The primary focus is not so much on technology as it is
on creating a culture to document and support sound
engineering architecture and design.
A pattern is the abstraction from a
concrete form which keeps recurring in specific non-arbitrary
contexts.
-Dirk Riehle and Heinz Zullighoven
The [GoF] book defines design
patterns as
"descriptions of communicating
objects and classes that are customized to solve a
general design problem in a particular context."
It then goes on to say that:
A design pattern names, abstracts, and identifies
the key aspects of a common design structure that
make it useful for creating a reusable object-oriented
design. The design pattern identifies the
participating classes and their instances, their
roles and collaborations, and the distribution of
responsibilities. Each design pattern focuses on a
particular object-oriented design problem or issue.
It describes when it applies, whether or not in can
be applied in view of other design constraints, and
the consequences and trade-offs of its use. Se we
must eventually implement our designs, a design
pattern also provides sample ... code to illustrate
an implementation. Although design patterns describe
object-oriented designs, they are based on practical
solutions that have been implemented in mainstream
object-oriented programming languages ....
[ Gof ]
Gof, Group of Four, refers to Erich Gamma, Richard Helm,
Ralph Johnson, and John Vlissides.
[ The information provided above is partially or fully
obtained from this book,
which is reproduced here for reference only. ]
[ Back to Knowledge base ]
|