Заводской метод ДП

"речь идет о создании объектов (продуктов) без указания точного класса объекта, который будет создан". как это может быть? и если есть абстрактный класс, который наследует от него 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();
}

Таким образом, код, вызывающий этот метод, не определяет точный класс, который будет создан. Он просто знает, как его использовать.

Другие вопросы по тегам