Kapitel 10. Eigenschaften
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Scala-Traits fungieren als Schnittstellen, d.h. als abstrakte Deklarationen von Mitgliedern (Methoden, Felder und Typen), die zusammen den Zustand und das Verhalten ausdrücken. Traits können auch konkrete Definitionen (Implementierungen) von einigen oder allen dieser Deklarationen bereitstellen.
Ein Trait mit konkreten Definitionen funktioniert am besten, wenn diese Definitionen einen Zustand und ein Verhalten bieten, die gut gekapselt und lose gekoppelt oder sogar orthogonal zum Rest des Zustands und Verhaltens in den Typen sind, die den Trait verwenden. Der Begriff Mixin wird für solche Traits verwendet, weil wir in der Lage sein sollten, solche Traits "zusammenzumischen", um verschiedene konkrete Typen zusammenzustellen.
Traits als Mixins
Über Traits als Mixins haben wir bereits in "Traits: Schnittstellen und Mixins in Scala" besprochen, wo wir ein Beispiel untersucht haben, das Logging in einen Service einbindet. Die Protokollierung ist ein gutes Beispiel für ein Mixin-Verhalten, das gut gekapselt und orthogonal zum Zustand und Verhalten des restlichen Dienstes sein kann.
Lass uns das Gelernte anhand eines neuen Beispiels wiederholen und vertiefen. Betrachte zunächst den folgenden Code für eine Schaltfläche in einem GUI-Toolkit, der Callbacks verwendet, um den Kunden zu benachrichtigen, wenn er geklickt wird:
// src/main/scala/progscala3/traits/ui/ButtonCallbacks.scala ...
Get Scala programmieren, 3. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.