using System.Collections.Generic;
public class FactoryMethod
public interface ISorvete
public class SorveteChocolate : ISorvete
public string Functionality()
return "Sorvete de Chocolate";
public class SorveteBaunilha : ISorvete
public string Functionality()
return "Sorvete de Baunilha";
class SorveteMorango : ISorvete
public string Functionality()
return "Sorvete de Morango";
public static class Factory
public static ISorvete Get(int id)
return new SorveteChocolate();
return new SorveteBaunilha();
return new SorveteMorango();
public static void Main()
for (int i = 0; i <= 3; i++)
var type = Factory.Get(i);
Console.WriteLine("O produto "+i+" é do tipo: " + type.Functionality());