0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Применение полиморфизма подтипов не убирает условные конструкции полностью (кроме некоторых случаев диспетчеризации, например по ключу или по имени файла). Чаще условная конструкция остается одна, только на уровне выбора подходящей реализации, а вот затем эта реализация используется внутри полиморфной функции прямым способом без условий. В прошлом уроке мы рассмотрели пример функции, которая выбирает необходимую реализацию стратегии на основе возраста пользователя и возвращает ее наружу.</p>
1
<p>Применение полиморфизма подтипов не убирает условные конструкции полностью (кроме некоторых случаев диспетчеризации, например по ключу или по имени файла). Чаще условная конструкция остается одна, только на уровне выбора подходящей реализации, а вот затем эта реализация используется внутри полиморфной функции прямым способом без условий. В прошлом уроке мы рассмотрели пример функции, которая выбирает необходимую реализацию стратегии на основе возраста пользователя и возвращает ее наружу.</p>
2
<p>Функция, которая выбирает нужный класс, создает объект и возвращает его наружу, называется фабрикой (более точно фабричным методом). Громкое имя для очень простой штуки. Фабрика может быть реализована любым способом, включая все, что разбиралось в этом курсе.</p>
2
<p>Функция, которая выбирает нужный класс, создает объект и возвращает его наружу, называется фабрикой (более точно фабричным методом). Громкое имя для очень простой штуки. Фабрика может быть реализована любым способом, включая все, что разбиралось в этом курсе.</p>
3
<p>В общем случае фабрикой называют все подряд, что создает объект или коллекции объектов. Причем не обязательно разных классов, класс может быть и один, но сам процесс создания включает в себя какие-то предварительные вычисления. В реальных проектах фабрики могут быть<a>достаточно большими</a>.</p>
3
<p>В общем случае фабрикой называют все подряд, что создает объект или коллекции объектов. Причем не обязательно разных классов, класс может быть и один, но сам процесс создания включает в себя какие-то предварительные вычисления. В реальных проектах фабрики могут быть<a>достаточно большими</a>.</p>
4
<p>Фабрики часто реализуются как классы с одним статическим методом - factory. Обычно сами фабрики объектами не делают, так как это не абстракция данных, а подменять их смысла нет, иначе получится подмена подменятора.</p>
4
<p>Фабрики часто реализуются как классы с одним статическим методом - factory. Обычно сами фабрики объектами не делают, так как это не абстракция данных, а подменять их смысла нет, иначе получится подмена подменятора.</p>
5
<h2>Диспетчеризация класса</h2>
5
<h2>Диспетчеризация класса</h2>
6
<p>JavaScript позволяет создавать объекты, используя ссылку на класс</p>
6
<p>JavaScript позволяет создавать объекты, используя ссылку на класс</p>
7
<p>Такой синтаксис открывает широкий простор для диспетчеризации. Например, в некоторых ситуациях получится уйти от условных конструкций вообще:</p>
7
<p>Такой синтаксис открывает широкий простор для диспетчеризации. Например, в некоторых ситуациях получится уйти от условных конструкций вообще:</p>
8
8