}
public class InfantryFactory : Factory
{
public override Warrior CreateWarrior()
{
return new Infantryman();
}
}
public class ArchersFactory : Factory
{
public override Warrior CreateWarrior()
{
return new Archer();
}
}
public class CavalryFactory : Factory
{
public override Warrior CreateWarrior()
{
return new Horseman();
}
}
Классический вариант шаблона «Фабричный метод» использует идею полиморфной фабрики.
Специально выделенный для создания объектов полиморфный базовый класс Factory
объявляет
интерфейс фабричного метода CreateWarrior(), а производные классы его реализуют.
Представленный вариант паттерна Factory Method является наиболее распространенным, но не
единственным. Возможны следующие вариации:
• Класс Factory имеет реализацию фабричного метода CreateWarrior() по умолчанию.
• Фабричный метод CreateWarrior() класса Factory параметризирован типом создаваемого
объекта (как и у представленного ранее, простого варианта Factory Method) и имеет
реализацию по умолчанию. В
этом случае, производные от
Factory классы необходимы
лишь для того, чтобы определить нестандартное поведение CreateWarrior().
Достарыңызбен бөлісу: