Шаблон смешивания

Для демонстрации альтернативной парадигмы типичного представления о наследовании рассмотрим пример 10.3, где для моделирования фигуры и окружности используется иной подход, основанный на смешанных классах. Следует особо отметить, что в случае смешанных классов широко используется грубое определение типа данных и отношение типа имеет. Вспомните: понятие грубого определения типа данных основано на идее, что если нечто крякает как утка и ведет себя как утка, значит, это утка. В нашем случае это понятие транслируется так: если объект обладает свойствами фигуры или окружности, это достаточный повод, чтобы считать объект фигурой или окружностью.

Другими словами, совершенно не важно, чем является объект на самом деле, если он обладает необходимыми свойствами.
Пример 10.3. Смешивание – альтернатива наследованию
//Создать простой объект для моделирования фигуры
var shape = {}
//Добавить все, что необходимо, чтобы объект "выглядел как фигура
//и крякал как фигура"
dojo.mixin(shape, {
centerX : 10,
centerY : 20,
color : "blue"
});
//Если позднее потребовалось что-то еще. Нет проблем,
//просто нужно добавить то, что необходимо
dojo.mixin(shape, {
radius : 2
});
//Теперь фигура ИМЕЕТ радиус

Следует заметить, что этот пример смешанного класса не может служить точной заменой предыдущего примера, в котором используется наследование прототипов. Этот пример скорее предназначен, чтобы продемонстрировать различные способы решения проблемы.

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

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