public static void Main()
ChartCreator chartCreator = new ChartCreator();
for (int i = 1; i <= 2; i++)
var chart = chartCreator.GetChart(i);
Console.WriteLine("Where id = {0}, chart = {1} ", i, chart.GenerateChart());
public class BarChart : IChart
public string GenerateChart()
return "Generating BarChart.";
public class PieChart : IChart
public string GenerateChart()
return "Generating PieChart.";
public interface IChartCreator
public class ChartCreator : IChartCreator
public IChart GetChart(int id)
case (int)ChartType.BarChart:
case (int)ChartType.PieChart: