HTML Diff
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