Interfaces in Go: reine Typ-Sache

Seite 4: Fazit

Inhaltsverzeichnis

Wie Interfaces in Go umgesetzt sind, unterscheidet sich nur geringfügig von anderen Programmiersprachen. Die Differenzen gehen jedoch auf bewusst getroffene Entscheidungen zurück. So unterstützt Go durch sein spezifisches Design das Interface-Segregation-Prinzip. Dadurch lassen sich ohne großen Aufwand kleine effektive Interfaces definieren.

Der Compiler stellt sicher, dass die Variablen zu den zugehörigen Interfaces kompatibel sind. Die Definition von Interfaces erfolgt idealerweise zusammen mit einer Funktion, die dieses verwendet. Sollte es jedoch Interfaces mit nur einer einzigen Implementierung geben, ist dies ein Anzeichen einer Interface-Pollution. In diesen Fällen ist zu prüfen, ob das Interface auch wirklich notwendig ist.

Interfaces verdecken Informationen der dahinterliegenden Variablen. Es ist bei deren Verwendung nicht möglich, auf die darunterliegende Variable direkt zuzugreifen. Insbesondere leere Interfaces sollten Entwicklerinnen und Entwickler vermeiden, da diese keinen Kontext liefern. Mit dem Type-Switch und der Type-Assertion lässt sich der konkrete Typ aus der Interface-Hülle sicher herausholen.

Andreas Schröpfer

ist seit über zehn Jahren in der IT-Beratung tätig und seit 2015 begeisterter Gopher. Er ist Autor des Buches "Go – Das Praxisbuch" und Contributor bei mehreren Open-Source-Projekten. Er gibt Workshops zu Go und unterrichtet auch auf Udemy.

(map)