Warum die Vererbung von IDummy?
In diesem Beispiel bewirkt es nichts. Es soll nur die Verwandtschaftsverhältnisse innerhalb der echten Klassen verdeutlichen. Es gibt eine ganze Reihe von Klassen die durch Module (u.a. auch Plugins/BPLs) erweitert und ersetzt werden können.
Alle Klassen, dieses Themenkomplexes, stammen von bzw. implementieren ein gemeinsames Ur-Interface. Einfach damit die Verwaltungsroutinen (laden von Modulen, registrieren der Klassen und bereitstellen von Instanzen) etwas zum "anfassen" haben.
Als Typargument wird IDummy nicht verwendet sondern ein Nachfahre, welcher die Mindestanforderungen erfüllt. Es gibt auch keine Container-, Gruppen- oder Itemklassen. Es gibt aber Klassen die, neben ihrer eigentlichen Bestimmung, ihrem primär Interface, zusätzlich eines (oder eine Kombination) der hier gezeigten Interfaces implementieren.
Das ganze ist also noch ein gutes Stück komplexer. Hatte gestern Abend das Gefühl, den ganzen Tag in Brainfuck programmiert zu haben