Заводской метод ДП
"речь идет о создании объектов (продуктов) без указания точного класса объекта, который будет создан". как это может быть? и если есть абстрактный класс, который наследует от него evryone - звучит как "Полиморфизм". какая разница в любом случае?
благодарю вас!
1 ответ
Давайте рассмотрим, что у нас есть интерфейс:
public interface IClass {}
Также у нас есть два класса, которые наследуют этот интерфейс (или абстрактный класс, или просто любой другой базовый класс):
public class First : IClass {}
public class Second: IClass {}
Первый используется для персонала в коде продукта, а второй - для тестирования.
И у вас есть заводской метод:
public IClass GetClass ()
{
if(InTest) return new Second();
else
return new First();
}
Таким образом, код, вызывающий этот метод, не определяет точный класс, который будет создан. Он просто знает, как его использовать.