18
§ The Active Object design pattern (369)
The other twelve patterns and one idiom in the book are arranged to minimize forward
references. You can read them in any order of course, and we provide page numbers for
following references to other patterns within the book. This material completes and
complements the concepts defined by the four patterns listed above and covers a range of
issues relevant to designing and implementing concurrent and networked objects effectively.
You can also use this book to find solutions to problems you encounter in your projects. Use
the overview of our patterns in Chapter 6, Weaving the Patterns Together, to guide your
search, then locate in Chapters 2 through 5 the detailed descriptions of the patterns you
select as potential solutions.
No pattern is an island, completely separated from other patterns. Therefore, Chapter 6,
Weaving the Patterns Together, also describes how all the patterns in this book can be
woven together to form a pattern language for building networked applications and
middleware. If you want an overall perspective of the patterns in this book before delving into
the individual patterns, we recommend you skim the pattern language presentation in
Chapter 6 before reading the patterns in Chapters 2 through 5 in depth.
Chapter 7, The Past, Present, and Future of Patterns and Chapter 8, Concluding Remarks
complete the main content of this book. The remainder of the book consists of a glossary of
technical terms, an overview of the notations used in the figures, references to related work,
and an index of patterns, topics, and names.
[2]
We adopt the page number notation introduced by [GoF95]. (47) means that the
corresponding pattern description starts on page 47.
Pattern Form
All patterns presented in this book are self-contained, following the [POSA1] pattern form.
This form allows us to present both the essence and the key details of a pattern. Our goal is
to serve readers who simply want an overview of the pattern's fundamental ideas, as well as
those who want to know how the patterns work in depth.
Each section in our pattern form sets the stage for the subsequent section. For instance, the
Example section introduces the Context, Problem, and Solution sections, which summarize
a pattern's essence. The Solution section foreshadows the Structure and Dynamics section,
which then present more detailed information about how a pattern works, preparing readers
for the Implementation section.
The Example Resolved, Variants, Known Uses, Consequences and See Also sections
complete each pattern description. We include extensive cross-references to help you to
understand the relationships between the patterns in this book and other published patterns.
To anchor the presentation of a pattern's implementation activities to production software
systems, much of the sample code is influenced by components provided in the ACE
framework [Sch97]. If you first want to get an overview of all the patterns you may therefore
want to skip over the Implementation sections on your initial pass through the book and
come back to them when you need to know a particular pattern's implementation details.
Although the pattern form we use in this book incurs some repetition within the pattern
descriptions, we have found that this repetition helps readers navigate through the
descriptions more effectively by minimizing 'back-tracking'.