Kapitel 14. Objekte zu Transformationen akkumulieren

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Java-Programme verlassen sich in der Regel stark auf veränderliche Zustände, weil es in Java so mühsam ist, Wertetypen zu definieren und Werte zu transformieren, selbst mit der Streams-API. Wie kann man Java-Code, der sich auf veränderliche Objekte und Seiteneffekte verlässt, am besten in Kotlin-Code übersetzen, der unveränderliche Werte transformiert?

Rechnen mit Akkumulator-Parametern

Eines der wichtigsten Dinge, die unsere Reisenden wissen wollen, ist, wie viel ihr Abenteuer kosten wird. Bei internationalen Reisen ist das ziemlich kompliziert. Auf dem Weg über die Grenzen fallen Kosten in verschiedenen Währungen an, aber der Reisende möchte die Gesamtkosten vergleichen können, um Entscheidungen über die Route und den Aufenthaltsort zu treffen. Deshalb fasst Travelator die Kosten in der Landeswährung und in der bevorzugten Währung des Reisenden zusammen und zeigt dann die Gesamtsumme in der bevorzugten Währung an. Dafür werden die Klassen CostSummary und CostSummaryCalculator verwendet. Schauen wir uns an, wie sie verwendet werden, und dann sehen wir uns ihre Implementierung an.

Die Klasse Itinerary verfügt über eine Operation, um ihre Kosten mit einer CostSummary​Cal⁠culator zusammenzufassen. Sie wird wie folgt verwendet:

val fx: ExchangeRates = ...
val userCurrency = ...
val calculator ...

Get Von Java zu Kotlin 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.