Architekturen von Softwaresystemen sollen einfach erweiterbar und weitestgehend standardisiert
sein damit die Entwickler sich leicht über Architekturen austauschen können. Für den
objektorientierten Entwurf haben sich zahlreiche wertvolle Architektur- und Entwurfsmuster
herausgebildet. Diese Muster basieren auf objektorientierten Prinzipien wie dem Prinzip der
Dependency Inversion. Daher werden zuerst die wichtigsten objektorientierten Prinzipien
erklärt. Anschließend wird gezeigt wie diese objektorientierten Prinzipien in den
verschiedenen Architektur- und Entwurfsmustern umgesetzt werden. Alle vorgestellten Muster
werden durch lauffähige Beispiele in Java illustriert.