Сделать фабрику (или менеджера фабрики) статичной: это упрощает использование, но требует дополнительной настройки.
Но C# не допускает наследование от статических классов, поэтому в этом случае как я могу наследовать разные фабрики от основного (статического) фабричного класса.< /p>
Например, если я создам фабрику BeeFactory как базовый класс, имеющий функцию, возвращающую продукт IBee:
Код: Выделить всё
public BeeFactory
{
public abstract IBee GetBee();
}
Код: Выделить всё
public HoneyBeeFactory : BeeFactory
{
public override IBee GetBee()
{
IBee bee = new Bee();
bee.isMakeHoney = true;
return bee;
}
}
Код: Выделить всё
public QueenBeeFactory : BeeFactory
{
public override IBee GetBee()
{
IBee bee = new Bee();
bee.isMakeHoney = false;
return bee;
}
}
Код: Выделить всё
public static BeeFactory {...}
Мне кажется, что статический базовый класс фабрики нарушает сам дизайн, потому что я могу это не присуще ему, так как я могу реализовать концепцию статического класса в фабричном шаблоне? или о чем говорится в книге?? Заранее спасибо.
Ссылка на книгу (https://unity.com/resources/design-patterns-solid-ebook)
Подробнее здесь: https://stackoverflow.com/questions/793 ... gn-pattern