FlashBuilder свободно соединяемая и многократно используемая архитектура компонентов - PullRequest
0 голосов
/ 24 февраля 2012

Я хочу, чтобы мои компоненты mxml или actionscript были многократно используемыми и слабо связанными. Мне интересно, если это хорошая практика, использовать FlexGlobals.topApplication для отправки и прослушивания событий. Например, я хочу, чтобы мой компонент входа в систему отправлял события в topApplication, поэтому при повторном использовании этого компонента в другом проекте мне не нужно ничего менять, поскольку все приложения имеют topApplication.
Другой вариант - иметь отдельный статический класс для обработки событий, но затем я создаю зависимость от этого статического класса. Мы ценим любые предложения. Благодаря.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Я бы порекомендовал вам прочитать о распространении событий и попросить ваш компонент входа в систему отправлять событие «кому угодно», которое ловит его, когда оно всплывает в иерархии.

http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html

0 голосов
/ 24 февраля 2012

Я должен согласиться с ответом Стиана по большей части здесь. Что касается комментария Велтраумпирата, я чувствую, что внедрение зависимости может быть большим, но также добавляет много сложностей в отношении отладки / тестирования IMO, и если вы не собираетесь использовать разные реализации интерфейса, просто добавьте много мусорного кода для просмотра. без какой-либо реальной выгоды. Я чувствую, что Spring на стороне сервисного уровня работает хорошо, потому что вы можете изменить реализации для уровня доступа к данным (DAO), если вы переключаете БД или что-то в этом роде, но мне сложно увидеть преимущества внешнего интерфейса.

Я бы не рекомендовал использовать topLevelApplication, так как в итоге вы получите нечто вроде cairngorm, где у вас есть этот огромный набор событий / обработчиков событий, происходящих на верхнем уровне. Не говоря уже о том, что, следуя предложенной вами модели, вы получите кучу бессмысленных классов событий, которые просто определяют строку (есть лучшие и худшие способы сделать это с помощью Cairngorm, но я не фанат того, что видел в дикий).

Разработчик в моей компании написал собственную «микро-инфраструктуру» MVC, которая прекрасно работает для нас, когда мы можем подключить контроллер к любому экранному объекту для обработки событий для него, это прекрасно работает, но требует первоначальных накладных расходов на разработку / проверять это. Он построен поверх существующей схемы событий во Flex, поэтому наш класс MVCEvent расширяет Event (по умолчанию мы просто всплываем, поскольку мы стремимся к этому для типов событий, которые мы создаем, когда контроллер может находиться на любом уровне выше диспетчеризации UIComponent. событие, и всегда можно отключить пузыри, однако, начиная с базового класса Event, мы можем использовать встроенный метод EventDispatcher dispatchEvent ()). Он написал практически все, используя интерфейс для определения методов для каждой части и только предполагая, что объекты реализуют данный интерфейс для использования в определенном контексте (как в IMVCEvent, IMVCCommand) таким образом, если реализация встроенной платформы не работает для В вашем конкретном сценарии вам просто нужно создать новый класс, который реализует тот же интерфейс (если расширение также не работает для вашего случая). Это дает огромную гибкость, но в то же время мы, как правило, можем просто повторно использовать существующие реализации событий, команд или контроллеров. В каждом приложении мы просто определяем новые представления и команды для вещей, специфичных для бизнес-правил приложения.

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

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

Поправка здесь, чтобы признать существующие доступные платформы Flex MVC и успокоить толпу.

Ножки робота Кстати, посмотрите, что говорит создатель ног робота об использовании своего кода: Его слова не мои

1020 * мошенничество *

Mate

Stackoverflow вопрос о гибких фреймворках

...