Der grösste Vorteil von Interfaces ist das die Consumer Klasse gar nichts von der Implementation mitbekommt.
Keinerlei Abhängigkeiten zu anderen Klassen. Jeder der versucht
Unit Tests zu schreiben und das auch konsequent
durchzieht
will die Vorteile nicht mehr missen. Die einzige Abhängigkeit ist die Interface
Unit, fertig.
Ich arbeite in der CAD-Branche, wir müssen import und export zu verschiedenen Formaten bereithalten.
Unser Klassen haben einfach Methoden die ein Interface entgegennehmen. Welches Format da dann wirklich dahintersteht is egal.
Die verschiedenen Formate werden einfach bei einer Factory registriert.
function readImport(Import : IImport3d) : boolean;
Ob da jetzt ein Step, SAT, Igel oder was auch immer ankommt ist egal.
Die einzelnen Bereiche können unabhängig voneinander getestet werden und gut ist..