Protokoll vor Typ
Kleiner OO-Tipp mit grosser Wirkung: Es ist viel wichtiger zu wissen, wie Objekte miteinander kommunizieren als zu wissen, was sie sind.
Oder wie der Titel dieses Beitrags schon sagt: Protokoll vor Typ! Denn: Entscheidend sind die Interaktionen zwischen Objekten, da sie letztlich bestimmen, welche Objekte in einem System wie miteinander gekoppelt sind.
Übrigens: In einer Sprache mit Compile-Time Type-Checking (z.B. Java, Scala, C#, etc.) können wir die Protokolle typisieren und der Compiler hilft uns, sie einzuhalten. In Sprachen mit Duck-Typing müssen wir dagegen die Prüfung des Typsystems für die Protokolle mittels Unit-Tests nachbauen - wem's Spass macht...
-nemo :-)