using System;
public abstract class Product{
public Product(){}
}
public class ConcreteProduct_1: Product{
public ConcreteProduct_1(){}
}
public class ConcreteProduct_2: Product{
public ConcreteProduct_2(){}
}
public abstract class Creator{
public abstract Product FactoryMethod();
public void SomeOperation(){
Product product = FactoryMethod();
}
}
public class ConcreteCreator_1: Creator{
public override Product FactoryMethod(){
return new ConcreteProduct_1();
}
}
public class ConcreteCreator_2: Creator{
public override Product FactoryMethod(){
return new ConcreteProduct_2();
}
} |