Ich arbeite zur Zeit an einem API-Design, das die Spezifikation einer Reihe von Schnittstellen als Abstraktionen beinhaltet, die später von verschiedenen konkreten Klassen implementiert werden sollen.
Zufälligerweise verwende ich Java, aber ich denke, die Frage ist für jede Sprache relevant, die ein ähnliches Schnittstellenkonzept unterstützt.
Ich habe festgestellt, dass es oft eine Option dazwischen gibt:
- Erstellung einer großen Schnittstelle mit einer Vielzahl von Methoden
- Erstellung mehrerer Schnittstellen, die jeweils eine Teilmenge der gesamten Methodenpalette enthalten (eine einzige konkrete Klasse müsste wahrscheinlich mehrere oder alle dieser Schnittstellen implementieren)
Was sind die Vor- und Nachteile der einzelnen Ansätze?