empros gmbh - process & information management services
1009-chatExperience is the hardest kind of teacher.
It gives you the test first and the lesson afterward.

-Susan Ruth

Das Prinzip der minimalen Annahme

Heuristik

Bevorzuge für die Deklaration von Variablen und Parametern Schnittstellen gegenüber Klassen.

Erklärung

Bei der Deklaration von Parametern und Instanzvariablen haben wir die Wahl zwischen einer Schnittstelle und einer Klasse. Das Prinzip der minimalen Annahme legt zwei Regeln fest:

Wir verwenden nur dann eine implementierende Klasse, wenn die zugrunde liegende Schnittstelle nicht ausreicht. Dies sollte nur ganz selten der Fall sein.

Wir wählen unter all den passenden Schnittstellen die einfachste (in Java z.B. Collection statt List, Iterator statt ListIterator, sofern die Methoden der einfacheren Schnittstelle genügen).

Für Instanzvariablen und Parameter gilt somit gleichermassen: Der gewählte Typ ist so allgemein wie möglich und so speziell wie nötig.

Die Einhaltung dieses Prinzips, das letztlich eine Konkretisierung des Grundsatzes Design to interfaces and not to classes ist, hilft uns bei der Entkopplung zwischen Client und Server und schafft so gezielt Plugin-Punkte, mit deren Hilfe die konkreten Implementierungen einfach, z.B. für das systematische Testen, ausgetauscht werden können.

Vergleiche hierzu auch: Schnittstellen versus Klassen.

(Quelle: Johannes Siedersleben; Moderne Softwarearchitektur; dpunkt.verlag; 2004)