using System;
public class Program
{
public static void Main()
Creator c = new Creator( );
IProduct product;
for (int i=1; i<=12; i++) {
product = c.FactoryMethod(i);
Console.WriteLine("Avocados "+product.ShipFrom( ));
}
interface IProduct {
string ShipFrom( );
class ProductA : IProduct {
public String ShipFrom ( ) {
return " from South Africa";
class ProductB : IProduct {
return "from Spain";
class DefaultProduct : IProduct {
return "not available";
class Creator {
public IProduct FactoryMethod(int month) {
if (month >= 4 & month <=11)
return new ProductA( );
else
if (month == 1 || month == 2 || month == 12)
return new ProductB( );
else return new DefaultProduct( );