- Conversion Ratio
-
Conversion Ratio (deutsch: Umwandlungsverhältnis) ist ein Analysemuster aus der Softwaretechnik und dient zur Modellierung von Umwandlungsverhältnissen zwischen messbaren Werten und ihren Einheiten im Analysemodell. Das Analysemuster wurde von Martin Fowler in seinem Buch Analysemuster [Vgl. Fowler (1997), S. 38-39] beschrieben.
Inhaltsverzeichnis
Problem
Eine Programmiersprache kennt weder Einheiten noch ihre Umwandlungsverhältnisse. Conversion Ratio beschreibt, wie Umwandlungsverhältnisse zwischen Einheiten im Analysemodell berücksichtigt werden können. Damit ist die Software in der Lage, die konkreten Werte in Abhängigkeit ihrer Einheiten umzurechnen.
Kontext
Conversion Ratio baut auf dem Analysemuster Quantity [Vgl. Fowler (1997), S. 36-38] auf. Quantity beschreibt, wie messbare Werte und ihre Einheiten in das Analysemodell integriert werden können. Conversion Ratio erweitert dieses Muster um die Funktionalität der Umwandlung zwischen verschiedenen Einheiten.
Lösung
Zur Lösung des Problems wird Quantity durch Aufnahme der Umwandlungsverhältnisse zwischen Einheiten ergänzt.
Durch Einarbeitung von Conversion Ratio kennt jede Einheit (englisch: Unit) eine Menge von Umwandlungsverhältnissen (englisch: ConversionRatio) und kann diese bei einer durchzuführenden Umwandlung abfragen und verwenden.
Der folgende Java-Quelltext zeigt die Methode zur Umsetzung der Umwandlungsfunktionalität:
public Quantity convertTo(Unit toUnit) { double ratio = this.unit.getConversionRatio(toUnit); double convertedValue = this.value * ratio; return new Quantity(toUnit, convertedValue); }
Kräfte
Stärken
- Conversion Ratio zentralisiert die Umwandlungsverhältnisse aller Einheiten in Objekte vom Typ ConversionRatio und vereinfacht somit die Erweiterung und Wartung.
- Durch Kombination mehrerer Umwandlungsverhältnisse kann die Menge von ConversionRatio-Objekten deutlich eingegrenzt werden. Z.B. ist es möglich, direkt von den Maßeinheiten Meter zu Millimeter umzurechnen. Dazu werden die Umwandlungsverhältnisse Meter zu Zentimeter, definiert mit 100, und Zentimeter zu Millimeter, definiert mit 10, miteinander kombiniert.
Schwächen
- Es ist nicht möglich alle Umwandlungen mit einem festen Umwandlungsverhältnis und damit einer einfachen Multiplikation durchzuführen, wie es z.B. bei der komplexeren Umwandlung zwischen den Einheiten Celsius nach Fahrenheit der Fall ist. Hier ist eine Erweiterung von Conversion Ratio durch das Analysemuster Individual Instance Method (deutsch: individuelle Instanzmethode) notwendig [Vgl. Fowler (1997), S. 106-111].
- Schwierigkeiten ergeben sich auch, wenn zeitabhängige Umwandlungsverhältnisse (z.B. bei Währungen) abgebildet werden sollen. Dazu könnte Conversion Ratio durch Attribute erweitert werden, welche die Zeit der Anwendbarkeit angeben. Alternativ beschreibt Martin Fowler dafür das Analysemuster Scenario (deutsch: Szenario) [Vgl. Fowler (1997), S. 188-196].
Siehe auch
- Analysemuster, Übersicht Analysemuster
- Quantity, Analysemuster zur Erweiterung von messbaren Werten um ihre Einheiten
Literatur
- Martin Fowler: Analysis Patterns - Reusable Object Models, Addison Wesley, 1997 ISBN 0-201-89542-0
Weblinks
- www.martinfowler.com Homepage von Martin Fowler
- Beschreibung Quantity Details zu Quantity von Martin Fowler
Wikimedia Foundation.