MischTemperaturRechner
class MischTemperaturRechner
Berechnung mit Richmann-Formel (Misch-Temperatur) als Klasse. Einem Objekt werden die Temperaturen für das heiße
und das kalte Wasser übergeben (die als fest
angenommen werden), mit der Methode berecheKaltwassermenge()
kann dann für die gewünschte Zieltemperatur und die Menge heißen Wassers die benötigte Kaltwassermenge
berechnet werden.
Diese Klasse hat eine Unterklasse namens MischTemperaturRechnerMitGuard
, in der die Methode
berecheKaltwassermenge()
überschrieben ist.
-
Temperatur kaltes Wasser in Grad Celsius.
Declaration
Swift
var temperaturKaltesWasser:Int
-
Temperatur heißes Wasser in Grad Celsius.
Declaration
Swift
var temperaturHeissesWasser:Int
-
Dieser Initialisierer können dem Aufrufer (der ein Objekt zu erzeugen versucht) einen Fehler signalisieren:
Die Initialisierung kann mit
return nil
abgebrochen werden. Im vorliegenden Beispiel wird dies für eine ungültige Heißwasser-Temperatur gemacht oder wenn die Heißwasser-Temperatur nicht echt-größer als die Kaltwasser-Temperatur ist. Man spricht dann von einem failable Initializer.Wie
normale
Methoden kann ein Initialisierer einen Fehler mitthrow
werfen (zwischen Ende Parameterliste und Beginn Rump muss Schlüsselwortthrows
stehen). Im vorliegenden Fall wird bei einer ungültigen Kaltwassertemperatur ein Fehler geworfen.Important
Im vorliegenden Beispiel werden zu Demonstrations-Zwecken beide Möglichkeiten für sehr ähnliche Fehler verwendet. In der Praxis wäre dies schlechter Stil.
parameters:
- tempKaltesWasser: Temperatur des kälteren Wassers in Grad Celsius.
- tempHeissesWasser: Temperatur des heißeren Wassers in Grad Celsius.
Throws
Bei einer ungültigen Kaltwasser-Temperatur wird ein Fehler vom Typ
TemperaturError.TempKaltesWasserUngueltig
geworfen.Declaration
Swift
init?(tempKaltesWasser:Int, tempHeissesWasser:Int) throws
Parameters
tempKaltesWasser
Temperatur des kälteren Wassers in Grad Celsius.
tempHeissesWasser
Temperatur des heißeren Wassers in Grad Celsius.
-
Methode zur Berechnung der beizumischenden Kaltwassermenge zur Erreichung der Zieltemperatur bei einer bestimmten Menge Heißwasser. Die Temperaturen für das heiße und das kalte Wasser sind als Objekt-Properties gespeichert.
- parameters:
- fuerZieltemperatur: Gewünschte Zieltemperatur nach Mischen in Grad Celsius.
- mitHeisswassermenge: Heißwassermenge in Liter.
Throws
Es wird ein Fehler vom TypTemperaturError.TempMischungNichtZwischenKaltUndHeissTemp
geworfen, wenn die Zieltemperatur nicht zwischen den Temperaturen für Kalt- und Heißwasser liegen. Wenn die Heißwassermenge kleiner-gleich 0 Liter ist, dann wird ein Fehler vom TypWasserMengenError.MengeWarmesWasserUngueltig
geworfen.Declaration
Swift
func berecheKaltwassermenge(fuerZieltemperatur:Int, mitHeisswassermenge:Double) throws -> Double
Parameters
fuerZieltemperatur
Gewünschte Zieltemperatur nach Mischen in Grad Celsius.
mitHeisswassermenge
Heißwassermenge in Liter.
Return Value
Benötigte Kaltwassermenge in Liter zur Erreichung der Ziel-Temperatur.
- parameters: