Модульная архитектура на чистом actionscript
C новым годом, уважаемые коллеги.
Стоит задача разделить монолитный проект на несколько модулей. Модуль создает картинку на основе пользовательских данных. В общем, таких модулей будет много поэтому есть цель подгружать модули динамически. Хотелось бы понять каким образом организовать взаимодействие модуля с ядром. Пока вижу два варианта, осуществить поддержку некого интерфейса IModule всеми модулями, либо организовать взаимодействие на основе двух объектов LocalConnection. Чтобы вы посоветовали? |
Слишком расплывчатый вопрос. Интерфейс использовать - идея нормальная. Я бы так и сделал, скорее всего. Если мне не нужно было бы, чтобы основной проект вкомпиливал в себя какие-то классы модулей.
|
Так хорошо. Попробую сделать с интерфейсами.
|
Соклашаюсь с камрадом caseyryan: вопрос слишком расплывяатый. Каждый понимает под модулями разное. Может быть имеется в виду похожая система на плагины FD, где каждый кастомный плагин наследует интерфейс IPlugin (вроде так его зовут), а ядро (оно же сама IDE FD) вызывает методы, диктуемые интерфейсом, передает необходимые параметры, чтобы плагин мог взаимодействовать с редактором.
А может имеется в виду, что модули все разные и общие черты в них не выделить (или это просто не нужно), тогда каждый интерфейс для каждого модуля свой. Ну и плюс нужно учесть, будет ли проект масштабироваться, будут ли модули заменяться со временем и так далее. Недавно был проект, где подгружались четыре графические части, две из которых состояли из многих мелких, а третье могло в любой момент полностью поменяться, но сохраняя свой интерфейс. "Ядро" в данном случае было всего лишь диспатчером, загрузчиком модулей и переключателем этих модулей на экране. |
Мы делаем модули отдельными проектами (в IDEA IDE такие подпроекты как раз называются модулями)
Таким образом модуль - это отдельная флешка реализующая заданный интерфейс, которая может быть подгружена динамически. При желании, такие модули можно очень легко вкомпилить сразу в основную флешку. При таком подходе куча плюсов - части проекта разделены физически, легко могут писаться разными разработчиками. Тк такой модуль полноценный проект, то его можно запустить отдельно и протестить всю его функциональность. |
Часовой пояс GMT +4, время: 22:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.