Академически, я знаком с парадигмой MVC, но практически я новичок. Я реализую свое первое «настоящее» приложение MVC (видеоплеер в AS3).
Я создаю плейлист (как боковую панель для видеоплеера). Плейлист можно прокручивать, и когда вы наводите курсор на элемент, он поворачивается (расширяется), чтобы показать больше информации. Ничего волшебного.
Теперь появятся десятки элементов списка воспроизведения. Мне интересно, как управлять фактическими M, V и C здесь.
Итак, у меня есть экземпляр ItemModel, ItemView и ItemController для каждого элемента списка воспроизведения. Когда я хочу добавить новый элемент в список воспроизведения, должен ли я вручную создавать экземпляры новых ItemModel, ItemView и ItemController, связывать их все, размещать там, где они должны идти, и [опционально] висеть на ссылках на них?
Вместо этого я думаю о создании класса Item, который является простой оболочкой для триады MVC. Затем любые взаимодействия клиента с триадой должны быть делегированы оболочкой. В этом случае пункт «обертка» отвечает за
- Создание триады MVC
- Делегирование событий в View.
Это разумно? Extensible? Типичные? Это анти-паттерн?
В более крупной системе с большим количеством объектов я мог видеть, как я принимаю парадигму «MVCW» (где «W» является таким оберткой для каждой триады), поэтому 4 класса в форме XyzModel, XyzView, XyzController и Xyz (или XyzWrapper, или XyzObject, или любой другой).
Но ... это не так, как я читал раньше. И я знаю, что данная модель может иметь несколько представлений, так как это будет играть?
Мотивация всего этого заключается в том, что кажется немного глупым вручную создавать 3 новых объекта для каждой новой «вещи», которая мне нужна (особенно в случае, когда взаимодействие с клиентом будет настолько минимальным). Я подозреваю, что это просто ошибка в моем восприятии парадигмы MVC, и что после исправления я не только пойму, почему «Обертка» является плохой идеей, но и выйду с пониманием того, как лучше управлять фактическими объектами в Триада.
Может быть, мой подход к дизайну полностью неверен, и это корень моей путаницы.
Или, может быть, это особый случай, когда да, фактически производство 3 экземпляров на элемент списка является правильной процедурой.
Какой совет?