Complete these tasks to reinforce what you learned in this module.
Der Warenkorb soll die Versandkosten nicht mehr selbst kennen.
Implementiere die beiden Strategien StandardVersand (4.90, aber 0.00 ab einem Warenwert über 100) und ExpressVersand (immer 12.90) hinter der Schnittstelle IVersandkosten. Die Klasse Kasse bekommt eine Strategie hereingereicht und darf keine Verzweigung über die Versandart enthalten.
Gib für einen Warenkorb von 80.00 und einen von 150.00 jeweils den Gesamtbetrag beider Versandarten aus.
Kasse speichert die Strategie in einem Feld und ruft im Gesamtbetrag nur _versand.Berechne(...) auf. Für die Ausgabe: betrag.ToString("0.00", CultureInfo.InvariantCulture) — sonst entscheidet die Kultur des Servers über Punkt oder Komma.using System;
using System.Globalization;
public interface IVersandkosten
{
decimal Berechne(decimal warenwert);
}
// TODO: StandardVersand — 4.90, aber 0.00 wenn warenwert > 100
// TODO: ExpressVersand — immer 12.90
public sealed class Kasse
{
// TODO: Strategie im Konstruktor entgegennehmen und im Feld speichern
public decimal Gesamtbetrag(decimal warenwert)
{
// TODO: Warenwert plus die von der Strategie berechneten Versandkosten
return 0m;
}
}
class Program
{
static void Main()
{
// TODO: Beide Strategien für 80.00 und 150.00 durchrechnen und ausgeben.
// Format: Console.WriteLine($"Standard 80: {betrag.ToString("0.00", CultureInfo.InvariantCulture)}");
}
}