static PerformanceCalculator CreatePerformanceCalculator(Invoice.Performance performance, Plays.Play play) { return(play.Type switch { "tragedy" => new TragedyCalculator(performance), "comedy" => new ComedyCalculator(performance), _ => throw new Exception($"Unknown type: {play.Type}") });
protected PerformanceCalculator(Invoice.Performance performance) { Performance = performance; }
public ComedyCalculator(Invoice.Performance performance) : base(performance) { }