Фабричний метод (Factory Method)
Дає можливість використовувати одну і ту ж функцію для створення різних об'єктів, що наслідуються від базового класу
abstract class Product
{ }
class ProductA : Product
{
public ProductA()
{
Console.WriteLine("A is created");
}
}
class ProductB : Product
{
public ProductB()
{
Console.WriteLine("B is created");
}
}
abstract class Creator
{
public abstract Product FactoryMethod();
}
class CreatorA : Creator
{
public override Product FactoryMethod() { return new ProductA(); }
}
class CreatorB : Creator
{
public override Product FactoryMethod() { return new ProductB(); }
}
static void Main(string[] args)
{
Creator cr = new CreatorA();
Product a = cr.FactoryMethod();
cr = new CreatorB();
Product b = cr.FactoryMethod();
Console.ReadKey();
}
A is created
B is created