Мы будем изучать Factory Design Pattern, который очень прост для понимания.

этот шаблон используется, когда несколько классов используют одну и ту же функцию.

Например, у нас будет функция Accel() в автомобилях разных компаний, поэтому, если мы создадим эти классы и посмотрим, как это работает:

Интерфейс -> автомобильИнтерфейс

теперь допустим 3 машины фирмы TATA,BMW, AUDI, используют эту функцию

теперь если мы создадим сервис для создания объекта для нужного нам автомобиля

мы можем передать название автомобиля в виде строки, а затем создать объект и передать его

но это будет противоречить принципу единой ответственности и принципу открытого и закрытого

Итак, мы создаем фабрику для класса, а затем используем эту фабрику в нашем основном классе.

Обратите внимание, что здесь мы использовали CarFeature в качестве возвращаемого типа, так как он обычно наследуется всеми классами, поэтому мы можем использовать его как объект для представления всех из них.

Используя его в основном методе:

так что в основном мы объединили здесь все те классы, которые реализовывали функцию ускорения, в один объект CarFeatures, и теперь с помощью Car factory мы можем создать объект любого из этих

так что теперь это также согласуется с принципом единой ответственности и принципом открытости и закрытия.

Репозиторий Github -> avinashsoni9829/Design-Patterns- (github.com)