Модульность в Flex - PullRequest
1 голос
/ 24 мая 2010

Я работаю над довольно большим приложением для Flex / Air.Мы используем GraniteDS и Tide для взаимодействия с моделью с нашего сервера Java EE.

Я читал о модульности и модулях во Flex.Приложение уже построено, и я нахожу выход для редизайна некоторых классов и частей.Из того, что я прочитал до сих пор, я понимаю, что Модуль - это другой SWF, который может быть динамически загружен.Большинство руководств / документации ориентированы на «программистов» Flash, которые используют Flex или Air вместо реальных разработчиков, что затрудняет получение онлайн-ресурсов.

Что я не могу понять - пока - какдля инкапсуляции классов ActionScript или представлений MXML в этом модуле.

Я разделил часть кода на библиотеки.Например, сгенерированный код из Granite находится в «серверной» библиотеке.Но я хотел бы отделить части логики с ее модераторами, контроллерами и представлениями.Модули - это путь?Существуют ли «модули для чайников» или «головы в первую очередь Flex Modules для программистов», такие как учебное пособие, чтобы получить лучшую перспективу для построения моей архитектуры?Когда выбирать библиотеки, а когда выбирать модули?

Я использую Flex 3.5, и переход на Flex 4 еще далеко, так что никаких ответов на Flex 4, пожалуйста, спасибо!

1 Ответ

1 голос
/ 24 мая 2010

Модули - это ответ для инкапсуляции пользовательского интерфейса в разные секции, которые не зависят друг от друга. Думайте о них как о приложениях внутри приложений.

Если вы хотите инкапсулировать «код», то есть не-пользовательский скрипт действий, то вам действительно нужны классы и пакеты классов. Вы также можете упаковать этот код в SWC, который является просто скомпилированной версией этого кода, который вы можете включить в несколько проектов (я думаю, это то, что вы подразумевали под библиотеками).

Вы не захотите создавать модуль только для того, чтобы он содержал не-пользовательский код. Вы не хотели бы использовать модули для разделения модели / вида / контроллера в вашем приложении.

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

Где мы используем модули в основном для приложения, которое имеет различные разделы, где вы работаете только в одном разделе одновременно. Нет необходимости, чтобы другие разделы занимали ресурсы, поэтому у нас есть разные разделы в модулях и мы загружаем / выгружаем их по мере необходимости.

Это помогает?

Изменить в ответ на комментарий ниже:

Под библиотеками я подразумевал Flex Library Проекты, в которых вы инкапсулируете классы и использовать SWC. Можете ли вы иметь эти библиотеки внутри проекта Flex? (Я использую отдельный проект библиотеки для каждая новая библиотека).

Да, вы можете использовать эти SWC (библиотеки кода) внутри ваших проектов Flex. Просто поместите swc в каталог lib вашего проекта flex / flash builder, и код автоматически добавится в ваш путь к классам. Просто убедитесь, что все, что нужно коду внутри одного SWC, находится внутри этого SWC. Не заставляйте SWC полагаться на работу другого SWC.

...