Я должен согласиться с ответом Стиана по большей части здесь. Что касается комментария Велтраумпирата, я чувствую, что внедрение зависимости может быть большим, но также добавляет много сложностей в отношении отладки / тестирования IMO, и если вы не собираетесь использовать разные реализации интерфейса, просто добавьте много мусорного кода для просмотра. без какой-либо реальной выгоды. Я чувствую, что Spring на стороне сервисного уровня работает хорошо, потому что вы можете изменить реализации для уровня доступа к данным (DAO), если вы переключаете БД или что-то в этом роде, но мне сложно увидеть преимущества внешнего интерфейса.
Я бы не рекомендовал использовать topLevelApplication, так как в итоге вы получите нечто вроде cairngorm, где у вас есть этот огромный набор событий / обработчиков событий, происходящих на верхнем уровне. Не говоря уже о том, что, следуя предложенной вами модели, вы получите кучу бессмысленных классов событий, которые просто определяют строку (есть лучшие и худшие способы сделать это с помощью Cairngorm, но я не фанат того, что видел в дикий).
Разработчик в моей компании написал собственную «микро-инфраструктуру» MVC, которая прекрасно работает для нас, когда мы можем подключить контроллер к любому экранному объекту для обработки событий для него, это прекрасно работает, но требует первоначальных накладных расходов на разработку / проверять это. Он построен поверх существующей схемы событий во Flex, поэтому наш класс MVCEvent расширяет Event (по умолчанию мы просто всплываем, поскольку мы стремимся к этому для типов событий, которые мы создаем, когда контроллер может находиться на любом уровне выше диспетчеризации UIComponent. событие, и всегда можно отключить пузыри, однако, начиная с базового класса Event, мы можем использовать встроенный метод EventDispatcher dispatchEvent ()). Он написал практически все, используя интерфейс для определения методов для каждой части и только предполагая, что объекты реализуют данный интерфейс для использования в определенном контексте (как в IMVCEvent, IMVCCommand) таким образом, если реализация встроенной платформы не работает для В вашем конкретном сценарии вам просто нужно создать новый класс, который реализует тот же интерфейс (если расширение также не работает для вашего случая). Это дает огромную гибкость, но в то же время мы, как правило, можем просто повторно использовать существующие реализации событий, команд или контроллеров. В каждом приложении мы просто определяем новые представления и команды для вещей, специфичных для бизнес-правил приложения.
Итак, к чему все это сводится, я предлагаю вам сделать свою собственную библиотеку, а затем повторно использовать эту библиотеку для своих многочисленных проектов. Вы будете знать свою собственную библиотеку и выходить из нее и сможете быстро настроить ее по своему усмотрению, не пытаясь понять многие варианты использования, которые кто-то разработал для своей инфраструктуры MVC.
Я понимаю, что это не идеальное решение с точки зрения скорости, чтобы что-то сделать сейчас, но я думаю, что это действительно лучшее решение для дальних перевозок (это было здорово для нас, это действительно все, что я могу сказать).
Поправка здесь, чтобы признать существующие доступные платформы Flex MVC и успокоить толпу.
Ножки робота
Кстати, посмотрите, что говорит создатель ног робота об использовании своего кода: Его слова не мои
1020 * мошенничество *
Mate
Stackoverflow вопрос о гибких фреймворках