Was ich aber definitiv nicht nehmen würde, wäre ein Interface.
Ich würde NUR ein Interface nehmen und nie etwas anderes..
Zum einen kauft man sich das Reference-Counting zum 2. ist man von der Implementation unabhängig und kann die Units entkoppeln, was auch die Unitstests einfacher macht.
Mavarik