User Documentation

One minute description
Two minute tutorial
Five minute introduction
Advanced Topics
FAQ
Container
Components
Terminology
Mock Objects
Inversion of Control Types

Patterns

Inversion of Control 
Dependency Injection 
Constructor Injection 
Setter Injection 
Interface Implementation Separation 
Lifecycle 
Antipatterns

Developer Documentation

 Current build status
How To Contribute
Relative Volunteering
Release Process

Project Information

Slogan
Mailing lists
Source Repositories
Open Issues
Blog entries 
Statistics
Team
Sister Projects
TShirts

Miscellaneous

Differentiators
Nirvana

Full Sitemap

Feeds


Site
News
Patterns

Key Design Patterns & Architectural Matters

IoC / Inversion of Control

the idea that an application is controlled from the top down

SoC / Separation of Concerns

the idea that a class (aspect) should do one job and do it well

SAI / SoAI / Separation of API from Implementation

the idea that you define and code to work interfaces

AOP / Aspect Oriented Programming

mostly lightweight nowadays where you add a chain of interceptors around a method call that can handle orthogonal concerns

COP / Component Oriented Programming

the idea that you decompose your software into components

DecP / Declarative Programming

where you use a declarative-style language (usually xml) to determine things like component wiring (i.e. your average tomcat config file, generalized)

EBP / Event Based Programming

basically making the inter-object method call asynchronous and encapsulating such a call into some kind of event object that can be queued, modified, etc

Patterns details here

Patterns detailed elsewhere

Separate Interfaces From Implementation

http://c2.com/cgi/wiki?SeparateInterfacesFromImplementation