Ein guter Artikel zu diesem Thema findet sich unter [1]. Für alle Architektur-Interessierten recht interessant.

[1] Martin Fowler - Writing Software Patterns