Das ist wahrscheinlich eher eine Frage an erfahrenere Programmierer als eine Antwort, aber... Die meiste Zeit habe ich mit einem kleinen Team gearbeitet, und wir standen uns nahe und kannten uns gut. Und ich habe mich gefragt, was Schnittstellen eigentlich sind. Aber mein letztes Projekt war mit einem neuen Team und war etwas größer. Und es war ein heilloses Durcheinander. Und nach einiger Zeit kam ich zu dem Schluss: Wir sollten Schnittstellen verwenden.
Nicht als Lösung für technische Probleme, sondern als eine Art Design-Doku, die im Code steht, die Sie zwingt, diesem Design zu folgen, das schwer zu ignorieren ist, was die Zusammenarbeit 100 Mal einfacher machen würde. Es ist kein Problem, sich zusammenzusetzen und sich eine Schnittstelle auszudenken. Und dann kann man sich aufteilen und die Sachen alleine implementieren. Aber wenn man sich an die Schnittstelle hält, dann kann jeder andere im Team die Idee der Klasse viel besser verstehen.
Also, meine beste Vermutung ist, dass Schnittstellen ist wirklich nette Art und Weise für die Zusammenarbeit zu arrangieren: implementieren, wie Sie wollen, aber keine öffentliche Schnittstelle außerhalb von Schnittstellen, und Neuschreiben von Schnittstellen muss mit anderen beteiligten getan werden. Einfacher Weg, um den Code in Ordnung zu halten und gemeinsame Sachen und eigene Sachen zu trennen.