Я создаю веб-приложение (например, JavaScript с jQuery и большим количеством SVG), где пользователь взаимодействует с «объектами» на экране (представьте себе DIV, которые можно перетаскивать, изменять размер и соединять с помощью arraows - какпрограмма векторного рисования или язык графического программирования).
Поскольку каждый «объект» содержит индивидуальную информацию, но всегда принадлежит к «классу» элементов, очевидно, что это приложение должно быть запрограммировано с использованием подхода ООП.
Но где лучше хранить «объекты»?
- Должен ли я создать глобальную структуру («реестр») со всеми (собственными) объектами JS и сказать им: «Нарисуйте себя наDOM "?
- Или я должен избегать такой структуры и думать о (соответствующих) узлах DOM как о своих объектах и присоединять к ним соответствующие данные как .data ()?
Первый подход очень MVC - но я думаю, что присоединение всех обработчиков событий будет нетривиальным.
Второй подход будет обрабатывать событиятривиальным способом, и это не создает дублирующую структуру, но я думаю, что обычные ОО-вещи (например, методы) будут более сложными.
Что вы рекомендуете?Я думаю, что ответ будет специфичен для JavaScript и SVG, поскольку «обычные» языки программирования не имеют такого высокоорганизованного «холста» вывода.