JavaScript – это не Java

Прежде чем перейти к обсуждению имитации в Dojo классов и иерархий наследования, вы должны осознать, что, вопервых, JavaScript – это не Java, а вовторых, инструментарий Dojo не пытается побороть стиль языка, за кулисами переделать отдельные части языка JavaScript и заставить его заниматься несвойственными ему вещами, – и здорово, что это так! JavaScript – это динамический, слабо типизированный язык программирования, тогда как Java – гораздо более строго типизированный язык, с настоящими классами и иерархиями наследования на основе классов, которые определяются на этапе компиляции. В JavaScript имеется механизм наследования, основанный на прототипах, который легко интерпретируется и может использовать ся для моделирования классов.

Используя язык JavaScript по прямому его предназначению и усиливая некоторые языковые конструкции максимально бережным способом, Dojo позволяет пользоваться преимуществами расширения языка и избежать необходимости сопровождать массивные пласты шаблонного программного кода. В конце концов, инструментарий предоставляет в ваше распоряжение четко организованную, гибкую реализацию, которая поможет вам следовать философии современной технологической эры: «выпускай раньше, обновляй чаще».

За исключением диджитов форм, которые будут представлены в главе 13, вы не увидите в инструментарии Dojo объектноориентированной архитектуры, потому что это не его стиль.


Стиль Dojo состоит в том, чтобы использовать наследование на основе прототипов и конструкции из библиотеки Base, такие как mixin и extend, которые в свою очередь используют сильные стороны JavaScript. В то же самое время инструментарий Dojo стремится быть прагматичным, и для реализации некоторых его частей действительно были использованы принципы объектноориентированной разработки, без которых реализация выглядела бы очень неуклюже. На самом деле, главная причина, почему эта глава завершает первую часть книги, состоит в том, что во второй части будет представлена библиотека Dijit, которая является той самой частью, которую можно отнести к объектноориентированной архитектуре.

При чтении этой главы помните о сказанном выше, потому что если вы обладаете большим опытом программирования на объектноориентированных языках, таких как Java или C++, у вас постоянно будет возникать искушение перенести объектноориентированные парадигмы этих языков в Dojo и попытаться реализовать все подряд с использованием механизма наследования, что оказывается не совсем естественным с точки зрения стиля программирования или производительности. В этой главе действительно демонстрируется возможность использовать Dojo для имитации глубоко вложенных иерархий объектов, тем не менее предполагается, что вы будете использовать эту возможность с благоразумной осторожностью.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
Вызов унаследованных методов
Имитация классов с использованием средств Dojo
Множественное наследование посредством смешивания классов
Наследование в JavaScript
Основной шаблон создания класса