I highly recommend reading the essay
"On the diffusion of Christopher Alexander's A Pattern
Language into Software Architecture"
by Rohit Khare. That essay is a good primer on the principles
behind Design Patterns and how they came into being.
Avalon takes many design patterns and architectural mindsets,
and implements the best ones for Servers. There are different
kinds of patterns that represent different aspects of Avalon.
Avalon uses three main conceptual patterns called Inversion
of Control, Multi-Dimensional Separation of Concerns, and
Aspect Oriented Programming. Avalon also uses several architectural
patterns like the Singleton and the Factory. Detailed information
about all of these patterns will be included in their respective
pages.
You can find more information about patterns from the following links:
-
Brian Foote's Pattern documents